xtensa: add support for KASAN
Cover kernel addresses above 0x90000000 by the shadow map. Enable
HAVE_ARCH_KASAN when MMU is enabled. Provide kasan_early_init that fills
shadow map with writable copies of kasan_zero_page. Call
kasan_early_init right after mmu initialization in the setup_arch.
Provide kasan_init that allocates proper shadow map pages from the
memblock and puts these pages into the shadow map for addresses from
VMALLOC area to the end of KSEG. Call kasan_init right after memblock
initialization. Don't use KASAN for the boot code, MMU and KASAN
initialization and page fault handler. Make kernel stack size 4 times
larger when KASAN is enabled to avoid stack overflows.
GCC 7.3, 8 or newer is required to build the xtensa kernel with KASAN.
Signed-off-by:
Max Filippov <jcmvbkbc@gmail.com>
Showing
- Documentation/features/debug/KASAN/arch-support.txt 1 addition, 1 deletionDocumentation/features/debug/KASAN/arch-support.txt
- Documentation/xtensa/mmu.txt 6 additions, 0 deletionsDocumentation/xtensa/mmu.txt
- arch/xtensa/Kconfig 5 additions, 0 deletionsarch/xtensa/Kconfig
- arch/xtensa/boot/lib/Makefile 2 additions, 0 deletionsarch/xtensa/boot/lib/Makefile
- arch/xtensa/include/asm/kasan.h 37 additions, 0 deletionsarch/xtensa/include/asm/kasan.h
- arch/xtensa/include/asm/kmem_layout.h 4 additions, 0 deletionsarch/xtensa/include/asm/kmem_layout.h
- arch/xtensa/include/asm/pgtable.h 2 additions, 1 deletionarch/xtensa/include/asm/pgtable.h
- arch/xtensa/include/asm/string.h 19 additions, 0 deletionsarch/xtensa/include/asm/string.h
- arch/xtensa/kernel/setup.c 6 additions, 1 deletionarch/xtensa/kernel/setup.c
- arch/xtensa/kernel/xtensa_ksyms.c 3 additions, 0 deletionsarch/xtensa/kernel/xtensa_ksyms.c
- arch/xtensa/lib/memcopy.S 6 additions, 4 deletionsarch/xtensa/lib/memcopy.S
- arch/xtensa/lib/memset.S 3 additions, 2 deletionsarch/xtensa/lib/memset.S
- arch/xtensa/mm/Makefile 5 additions, 0 deletionsarch/xtensa/mm/Makefile
- arch/xtensa/mm/init.c 7 additions, 0 deletionsarch/xtensa/mm/init.c
- arch/xtensa/mm/kasan_init.c 95 additions, 0 deletionsarch/xtensa/mm/kasan_init.c
Loading
Please register or sign in to comment