When build lkdtm module, which used flush_icache_range(), error occurred, ERROR: "flush_icache_all" [drivers/misc/lkdtm/lkdtm.ko] undefined!
Fix it. Cc: Paul Walmsley <paul.walms...@sifive.com> Cc: Palmer Dabbelt <pal...@sifive.com> Cc: Albert Ou <a...@eecs.berkeley.edu> Signed-off-by: Kefeng Wang <wangkefeng.w...@huawei.com> --- arch/riscv/include/asm/cacheflush.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/arch/riscv/include/asm/cacheflush.h b/arch/riscv/include/asm/cacheflush.h index 555b20b11dc3..f6ec26589620 100644 --- a/arch/riscv/include/asm/cacheflush.h +++ b/arch/riscv/include/asm/cacheflush.h @@ -80,13 +80,6 @@ static inline void flush_dcache_page(struct page *page) clear_bit(PG_dcache_clean, &page->flags); } -/* - * RISC-V doesn't have an instruction to flush parts of the instruction cache, - * so instead we just flush the whole thing. - */ -#define flush_icache_range(start, end) flush_icache_all() -#define flush_icache_user_range(vma, pg, addr, len) flush_icache_all() - #ifndef CONFIG_SMP #define flush_icache_all() local_flush_icache_all() @@ -99,6 +92,13 @@ void flush_icache_mm(struct mm_struct *mm, bool local); #endif /* CONFIG_SMP */ +/* + * RISC-V doesn't have an instruction to flush parts of the instruction cache, + * so instead we just flush the whole thing. + */ +#define flush_icache_range(start, end) flush_icache_all() +#define flush_icache_user_range(vma, pg, addr, len) flush_icache_all() + /* * Bits in sys_riscv_flush_icache()'s flags argument. */ -- 2.20.1