Hi all, This patchset adds KFENCE support on LoongArch. To run the testcases, you will need to enable the following options, -> Kernel hacking [*] Tracers [*] Support for tracing block IO actions (NEW) -> Kernel Testing and Coverage <*> KUnit - Enable support for unit tests and then, -> Kernel hacking -> Memory Debugging [*] KFENCE: low-overhead sampling-based memory safety error detector (NEW) <*> KFENCE integration test suite (NEW) With these options enabled, KFENCE will be tested during kernel startup. And normally, you might get the following feedback, ======================================================== [ 35.326363 ] # kfence: pass:23 fail:0 skip:2 total:25 [ 35.326486 ] # Totals: pass:23 fail:0 skip:2 total:25 [ 35.326621 ] ok 1 kfence ======================================================== you might notice that 2 testcases have been skipped. If you tend to run all testcases, please enable CONFIG_INIT_ON_FREE_DEFAULT_ON, you can find it here, -> Security options -> Kernel hardening options -> Memory initialization [*] Enable heap memory zeroing on free by default and you might get all testcases passed. ======================================================== [ 35.531860 ] # kfence: pass:25 fail:0 skip:0 total:25 [ 35.531999 ] # Totals: pass:25 fail:0 skip:0 total:25 [ 35.532135 ] ok 1 kfence ======================================================== v3: * Address Huacai's comments. * Fix a bug that Jackie Liu pointed out. * Rewrite arch_stack_walk() with the suggestion of Jinyang He. v2: * Address Huacai's comments. * Fix typos in commit message. Thanks, Enze Enze Li (4): KFENCE: Defer the assignment of the local variable addr LoongArch: mm: Add page table mapped mode support LoongArch: Get stack without NMI when providing regs parameter LoongArch: Add KFENCE support arch/loongarch/Kconfig | 1 + arch/loongarch/include/asm/kfence.h | 66 ++++++++++++++++++++++++++++ arch/loongarch/include/asm/page.h | 8 +++- arch/loongarch/include/asm/pgtable.h | 16 ++++++- arch/loongarch/kernel/stacktrace.c | 18 ++++---- arch/loongarch/mm/fault.c | 22 ++++++---- arch/loongarch/mm/pgtable.c | 7 +++ mm/kfence/core.c | 5 ++- 8 files changed, 123 insertions(+), 20 deletions(-) create mode 100644 arch/loongarch/include/asm/kfence.h -- 2.34.1