]> Gentwo Git Trees - linux/.git/commit
compiler_types: Introduce __nocfi_generic
authorNathan Chancellor <nathan@kernel.org>
Sat, 25 Oct 2025 20:53:18 +0000 (21:53 +0100)
committerKees Cook <kees@kernel.org>
Thu, 30 Oct 2025 03:04:55 +0000 (20:04 -0700)
commit39c89ee6e9c4464eb366f4e594379454a6c4db39
tree35fb17e7bce4dd5272031972652f6f89a1ef83a5
parent211ddde0823f1442e4ad052a2f30f050145ccada
compiler_types: Introduce __nocfi_generic

There are two different ways that LLVM can expand kCFI operand bundles
in LLVM IR: generically in the middle end or using an architecture
specific sequence when lowering LLVM IR to machine code in the backend.
The generic pass allows any architecture to take advantage of kCFI but
the expansion of these bundles in the middle end can mess with
optimizations that may turn indirect calls into direct calls when the
call target is known at compile time, such as after inlining.

Add __nocfi_generic, dependent on an architecture selecting
CONFIG_ARCH_USES_CFI_GENERIC_LLVM_PASS, to disable kCFI bundle
generation in functions where only the generic kCFI pass may cause
problems.

Link: https://github.com/ClangBuiltLinux/linux/issues/2124
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Link: https://patch.msgid.link/20251025-idpf-fix-arm-kcfi-build-error-v1-1-ec57221153ae@kernel.org
Signed-off-by: Kees Cook <kees@kernel.org>
arch/Kconfig
include/linux/compiler_types.h