]> git.baikalelectronics.ru Git - kernel.git/commitdiff
x86/mm: disable instrumentations of mm/pgprot.c
authorNaohiro Aota <naohiro.aota@wdc.com>
Wed, 24 Aug 2022 08:47:26 +0000 (17:47 +0900)
committerAndrew Morton <akpm@linux-foundation.org>
Sun, 11 Sep 2022 23:22:30 +0000 (16:22 -0700)
Commit 4154cc40b730 ("x86/mm: move protection_map[] inside the platform")
moved accesses to protection_map[] from mem_encrypt_amd.c to pgprot.c.  As
a result, the accesses are now targets of KASAN (and other
instrumentations), leading to the crash during the boot process.

Disable the instrumentations for pgprot.c like commit 4596517f5e2c
("x86/mm: Disable various instrumentations of mm/mem_encrypt.c and
mm/tlb.c").

Before this patch, my AMD machine cannot boot since v6.0-rc1 with KASAN
enabled, without anything printed.  After the change, it successfully
boots up.

Fixes: 4154cc40b730 ("x86/mm: move protection_map[] inside the platform")
Link: https://lkml.kernel.org/r/20220824084726.2174758-1-naohiro.aota@wdc.com
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
arch/x86/mm/Makefile

index f8220fd2c169a4f2fc0a3db9ed0bde6b08e77fea..829c1409ffbde12dbc77057c19e908bdc6801d51 100644 (file)
@@ -4,10 +4,12 @@ KCOV_INSTRUMENT_tlb.o                 := n
 KCOV_INSTRUMENT_mem_encrypt.o          := n
 KCOV_INSTRUMENT_mem_encrypt_amd.o      := n
 KCOV_INSTRUMENT_mem_encrypt_identity.o := n
+KCOV_INSTRUMENT_pgprot.o               := n
 
 KASAN_SANITIZE_mem_encrypt.o           := n
 KASAN_SANITIZE_mem_encrypt_amd.o       := n
 KASAN_SANITIZE_mem_encrypt_identity.o  := n
+KASAN_SANITIZE_pgprot.o                := n
 
 # Disable KCSAN entirely, because otherwise we get warnings that some functions
 # reference __initdata sections.
@@ -17,6 +19,7 @@ ifdef CONFIG_FUNCTION_TRACER
 CFLAGS_REMOVE_mem_encrypt.o            = -pg
 CFLAGS_REMOVE_mem_encrypt_amd.o                = -pg
 CFLAGS_REMOVE_mem_encrypt_identity.o   = -pg
+CFLAGS_REMOVE_pgprot.o                 = -pg
 endif
 
 obj-y                          :=  init.o init_$(BITS).o fault.o ioremap.o extable.o mmap.o \