summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Chancellor <nathan@kernel.org>2025-09-08 13:04:18 -0700
committerBorislav Petkov (AMD) <bp@alien8.de>2025-09-09 12:02:01 +0200
commit26a9f90b6101ea2c9d6f02802cf6d85108104b90 (patch)
treed958a0e2ad66d1e6ffaebb2d32ae26a94d284a2a
parent0ca77f8d33e8136b8926775380506f78a8d04811 (diff)
objtool: Ignore __pi___cfi_ prefixed symbols
When building with CONFIG_CFI_CLANG=y after the recent series to separate the x86 startup code, there are objtool warnings along the lines of: vmlinux.o: warning: objtool: __pi___cfi_startup_64_load_idt() falls through to next function __pi_startup_64_load_idt() vmlinux.o: warning: objtool: __pi___cfi_startup_64_setup_gdt_idt() falls through to next function __pi_startup_64_setup_gdt_idt() vmlinux.o: warning: objtool: __pi___cfi___startup_64() falls through to next function __pi___startup_64() As the comment in validate_branch() states, this is expected, so ignore these symbols in the same way that __cfi_ and __pfx_ symbols are already ignored for the rest of the kernel. Fixes: 7b38dec3c5af ("x86/boot: Create a confined code area for startup code") Signed-off-by: Nathan Chancellor <nathan@kernel.org> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Acked-by: Ard Biesheuvel <ardb@kernel.org>
-rw-r--r--tools/objtool/check.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/tools/objtool/check.c b/tools/objtool/check.c
index d0d20666e872..093fcd01dd6e 100644
--- a/tools/objtool/check.c
+++ b/tools/objtool/check.c
@@ -3565,6 +3565,7 @@ static int validate_branch(struct objtool_file *file, struct symbol *func,
/* Ignore KCFI type preambles, which always fall through */
if (!strncmp(func->name, "__cfi_", 6) ||
!strncmp(func->name, "__pfx_", 6) ||
+ !strncmp(func->name, "__pi___cfi_", 11) ||
!strncmp(func->name, "__pi___pfx_", 11))
return 0;