]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
x86/sev: Work around broken noinstr on GCC
authorArd Biesheuvel <ardb@kernel.org>
Mon, 14 Jul 2025 07:34:03 +0000 (09:34 +0200)
committerBorislav Petkov (AMD) <bp@alien8.de>
Tue, 15 Jul 2025 08:12:25 +0000 (10:12 +0200)
Forcibly disable KCSAN for the sev-nmi.c source file, which only
contains functions annotated as 'noinstr' but is emitted with calls to
KCSAN instrumentation nonetheless. E.g.,

  vmlinux.o: error: objtool: __sev_es_nmi_complete+0x58: call to __kcsan_check_access() leaves .noinstr.text section
  make[2]: *** [/usr/local/google/home/ardb/linux/scripts/Makefile.vmlinux_o:72: vmlinux.o] Error 1

Fixes: a3cbbb4717e1 ("x86/boot: Move SEV startup code into startup/")
Reported-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Tested-by: Randy Dunlap <rdunlap@infradead.org>
Link: https://lore.kernel.org/20250714073402.4107091-2-ardb+git@google.com
arch/x86/coco/sev/Makefile

index db3255b979bdab24623da579dba5bc56fe8b23b8..342d79f0ab6a8a4df268c04ca1f39ae25c9ecc00 100644 (file)
@@ -5,5 +5,6 @@ obj-y += core.o sev-nmi.o vc-handle.o
 # Clang 14 and older may fail to respect __no_sanitize_undefined when inlining
 UBSAN_SANITIZE_sev-nmi.o       := n
 
-# GCC may fail to respect __no_sanitize_address when inlining
+# GCC may fail to respect __no_sanitize_address or __no_kcsan when inlining
 KASAN_SANITIZE_sev-nmi.o       := n
+KCSAN_SANITIZE_sev-nmi.o       := n