ARM: 9028/1: disable KASAN in call stack capturing routines
authorArd Biesheuvel <ardb@kernel.org>
Tue, 17 Nov 2020 09:23:28 +0000 (10:23 +0100)
committerRussell King <rmk+kernel@armlinux.org.uk>
Tue, 8 Dec 2020 10:14:57 +0000 (10:14 +0000)
KASAN uses the routines in stacktrace.c to capture the call stack each
time memory gets allocated or freed. Some of these routines are also
used to log CPU and memory context when exceptions are taken, and so
in some cases, memory accesses may be made that are not strictly in
line with the KASAN constraints, and may therefore trigger false KASAN
positives.

So follow the example set by other architectures, and simply disable
KASAN instrumentation for these routines.

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
arch/arm/kernel/Makefile

index 89e5d864e923461c40bf80f794d6f91e904bb9ab..f6431b46866e8a3e7a7035182ed049270dab006a 100644 (file)
@@ -21,6 +21,9 @@ obj-y         := elf.o entry-common.o irq.o opcodes.o \
                   setup.o signal.o sigreturn_codes.o \
                   stacktrace.o sys_arm.o time.o traps.o
 
+KASAN_SANITIZE_stacktrace.o := n
+KASAN_SANITIZE_traps.o := n
+
 ifneq ($(CONFIG_ARM_UNWIND),y)
 obj-$(CONFIG_FRAME_POINTER)    += return_address.o
 endif