]> git.infradead.org Git - users/hch/misc.git/commit
riscv: enable HAVE_ARCH_STACKLEAK
authorJisheng Zhang <jszhang@kernel.org>
Sun, 23 Jun 2024 23:53:16 +0000 (07:53 +0800)
committerPalmer Dabbelt <palmer@rivosinc.com>
Fri, 26 Jul 2024 12:50:47 +0000 (05:50 -0700)
commitb5db73fb18257cd5d9cb59bc4b779fffa629566a
tree775ebd49b77381b1fc47d4e03e1bdbc7b2c40814
parent1d20e5d437cfebefb5e6f4d652c3a1561fc23fc7
riscv: enable HAVE_ARCH_STACKLEAK

Add support for the stackleak feature. Whenever the kernel returns to user
space the kernel stack is filled with a poison value.

At the same time, disables the plugin in EFI stub code because EFI stub
is out of scope for the protection.

Tested on qemu and milkv duo:
/ # echo STACKLEAK_ERASING > /sys/kernel/debug/provoke-crash/DIRECT
[   38.675575] lkdtm: Performing direct entry STACKLEAK_ERASING
[   38.678448] lkdtm: stackleak stack usage:
[   38.678448]   high offset: 288 bytes
[   38.678448]   current:     496 bytes
[   38.678448]   lowest:      1328 bytes
[   38.678448]   tracked:     1328 bytes
[   38.678448]   untracked:   448 bytes
[   38.678448]   poisoned:    14312 bytes
[   38.678448]   low offset:  8 bytes
[   38.689887] lkdtm: OK: the rest of the thread stack is properly erased

Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
Reviewed-by: Charlie Jenkins <charlie@rivosinc.com>
Link: https://lore.kernel.org/r/20240623235316.2010-1-jszhang@kernel.org
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
arch/riscv/Kconfig
arch/riscv/include/asm/thread_info.h
arch/riscv/kernel/entry.S
drivers/firmware/efi/libstub/Makefile