PREFIX_SYMBOLS has a !CFI dependency because the compiler already generates __cfi_ prefix symbols for kCFI builds, so objtool-generated __pfx_ symbols were considered redundant.
However, the __cfi_ symbols only cover the 5-byte kCFI type hash. With FUNCTION_CALL_PADDING, there are also 11 bytes of NOP padding between the hash and the function entry which have no symbol to claim them. The NOPs can be rewritten with call depth tracking thunks at runtime. Without a symbol, unwinders and other tools that symbolize code locations misattribute those bytes. Remove the !CFI guard so objtool creates __pfx_ symbols for all CALL_PADDING configs, covering the full padding area regardless of whether there's also a __cfi_ symbol. Signed-off-by: Josh Poimboeuf <[email protected]> --- arch/x86/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index f3f7cb01d69d..493b0038ac8d 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -2439,7 +2439,7 @@ config CALL_THUNKS config PREFIX_SYMBOLS def_bool y - depends on CALL_PADDING && !CFI + depends on CALL_PADDING menuconfig CPU_MITIGATIONS bool "Mitigations for CPU vulnerabilities" -- 2.53.0

