Commit 26a9f90b authored by Nathan Chancellor's avatar Nathan Chancellor Committed by Borislav Petkov (AMD)
Browse files

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: 7b38dec3 ("x86/boot: Create a confined code area for startup code")
Signed-off-by: default avatarNathan Chancellor <nathan@kernel.org>
Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
Acked-by: default avatarArd Biesheuvel <ardb@kernel.org>
parent 0ca77f8d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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;