KASAN is an important runtime memory debugging feature in linux kernel which can detect use-after-free and out-of- bounds problems.
There are two patches in this letter: 1. Porting the memmove string operation. 2. Porting the feature KASAN. Nick Hu (2): riscv: Add memmove string operation. riscv: Add KASAN support arch/riscv/Kconfig | 2 + arch/riscv/include/asm/kasan.h | 26 +++++++++ arch/riscv/include/asm/pgtable-64.h | 5 ++ arch/riscv/include/asm/string.h | 10 ++++ arch/riscv/kernel/head.S | 3 + arch/riscv/kernel/riscv_ksyms.c | 4 ++ arch/riscv/kernel/setup.c | 9 +++ arch/riscv/kernel/vmlinux.lds.S | 1 + arch/riscv/lib/Makefile | 1 + arch/riscv/lib/memcpy.S | 5 +- arch/riscv/lib/memmove.S | 64 ++++++++++++++++++++++ arch/riscv/lib/memset.S | 5 +- arch/riscv/mm/Makefile | 6 ++ arch/riscv/mm/kasan_init.c | 102 +++++++++++++++++++++++++++++++++++ 14 files changed, 239 insertions(+), 4 deletions(-) create mode 100644 arch/riscv/include/asm/kasan.h create mode 100644 arch/riscv/lib/memmove.S create mode 100644 arch/riscv/mm/kasan_init.c