linux/arch/riscv
Nick Hu 8ad8b72721
riscv: Add KASAN support
This patch ports the feature Kernel Address SANitizer (KASAN).

Note: The start address of shadow memory is at the beginning of kernel
space, which is 2^64 - (2^39 / 2) in SV39. The size of the kernel space is
2^38 bytes so the size of shadow memory should be 2^38 / 8. Thus, the
shadow memory would not overlap with the fixmap area.

There are currently two limitations in this port,

1. RV64 only: KASAN need large address space for extra shadow memory
region.

2. KASAN can't debug the modules since the modules are allocated in VMALLOC
area. We mapped the shadow memory, which corresponding to VMALLOC area, to
the kasan_early_shadow_page because we don't have enough physical space for
all the shadow memory corresponding to VMALLOC area.

Signed-off-by: Nick Hu <nickhu@andestech.com>
Reported-by: Greentime Hu <green.hu@gmail.com>
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
2020-01-22 13:09:58 -08:00
..
boot riscv: dts: Add DT support for SiFive L2 cache controller 2020-01-03 00:56:23 -08:00
configs Merge branch 'next/defconfig-add-debug' into for-next 2019-11-22 18:59:23 -08:00
include riscv: Add KASAN support 2020-01-22 13:09:58 -08:00
kernel riscv: Add KASAN support 2020-01-22 13:09:58 -08:00
lib riscv: Add KASAN support 2020-01-22 13:09:58 -08:00
mm riscv: Add KASAN support 2020-01-22 13:09:58 -08:00
net bpf, riscv: Limit to 33 tail calls 2019-12-11 13:57:17 +01:00
Kbuild riscv: add arch/riscv/Kbuild 2019-08-30 17:34:00 -07:00
Kconfig riscv: Add KASAN support 2020-01-22 13:09:58 -08:00
Kconfig.debug RISC-V: Remove EARLY_PRINTK support 2018-12-17 10:23:46 -08:00
Kconfig.socs riscv: only select serial sifive if TTY is enabled 2019-12-08 20:29:01 -08:00
Makefile riscv: provide a flat image loader 2019-11-17 15:17:39 -08:00