From: Kees Cook <kees@kernel.org>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Kees Cook <kees@kernel.org>,
Nathan Chancellor <nathan@kernel.org>,
Vegard Nossum <vegard.nossum@oracle.com>,
Miguel Ojeda <ojeda@kernel.org>,
Linus Walleij <linus.walleij@linaro.org>,
Jeff Johnson <jeff.johnson@oss.qualcomm.com>,
Randy Dunlap <rdunlap@infradead.org>,
David Woodhouse <dwmw2@infradead.org>,
"Russell King (Oracle)" <rmk+kernel@armlinux.org.uk>,
Nick Desaulniers <nick.desaulniers+lkml@gmail.com>,
Bill Wendling <morbo@google.com>,
Justin Stitt <justinstitt@google.com>,
Marco Elver <elver@google.com>,
Przemek Kitszel <przemyslaw.kitszel@intel.com>,
Ramon de C Valle <rcvalle@google.com>,
Jonathan Corbet <corbet@lwn.net>,
"Paul E. McKenney" <paulmck@kernel.org>,
Nicolas Schier <nicolas.schier@linux.dev>,
Masahiro Yamada <masahiroy@kernel.org>,
Arnd Bergmann <arnd@arndb.de>,
Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>,
Sami Tolvanen <samitolvanen@google.com>,
Mark Rutland <mark.rutland@arm.com>,
linux-kernel@vger.kernel.org, llvm@lists.linux.dev,
linux-doc@vger.kernel.org, linux-kbuild@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, x86@kernel.org,
linux-hardening@vger.kernel.org
Subject: [PATCH v2 0/9] kcfi: Prepare for GCC support
Date: Wed, 3 Sep 2025 20:46:39 -0700 [thread overview]
Message-ID: <20250904033217.it.414-kees@kernel.org> (raw)
v2:
- integrate "transitional" Kconfig patch[2] (nathan, randy, miguel)
- add arm32 KCFI trap handler
- split pr_info changes (nathan)
- clean up my broken SoB (peter)
- remove Clang from CONFIG_CFI help (jeff)
- add r-b (linus)
v1: https://lore.kernel.org/all/20250825141316.work.967-kees@kernel.org/
Hi,
With KCFI support in GCC coming[1], we need to make some (relatively
small) changes in the kernel to deal with it:
- move __nocfi out of compilers-clang.h (so GCC can see it too)
- add cfi=debug so future Kees can find fineibt breakage easier
- remove problematic __noinitretpoline usage
- rename CONFIG_CFI_CLANG to CONFIG_CFI (otherwise it is quite confusing)
If I can get some Acks, I will carry this in the hardening tree, unless
someone else would like to take it (perhaps tip).
Thanks!
-Kees
[1] https://lore.kernel.org/linux-hardening/20250821064202.work.893-kees@kernel.org/
[2] https://lore.kernel.org/all/20250901182334.make.517-kees@kernel.org/
Kees Cook (9):
compiler_types.h: Move __nocfi out of compiler-specific header
x86/traps: Clarify KCFI instruction layout
x86/cfi: Document the "cfi=" bootparam options
x86/cfi: Standardize on common "CFI:" prefix for CFI reports
x86/cfi: Add "debug" option to "cfi=" bootparam
x86/cfi: Remove __noinitretpoline and __noretpoline
kconfig: Add transitional symbol attribute for migration support
kcfi: Rename CONFIG_CFI_CLANG to CONFIG_CFI
ARM: traps: Implement KCFI trap handler for ARM32
arch/Kconfig | 36 ++++---
arch/arm/Kconfig | 2 +-
arch/arm64/Kconfig | 4 +-
arch/riscv/Kconfig | 6 +-
arch/x86/Kconfig | 12 +--
init/Kconfig | 4 +-
kernel/module/Kconfig | 2 +-
.../kconfig/tests/err_transitional/Kconfig | 52 +++++++++
scripts/kconfig/tests/transitional/Kconfig | 100 +++++++++++++++++
lib/Kconfig.debug | 2 +-
Makefile | 2 +-
arch/arm/mm/Makefile | 2 +-
arch/riscv/kernel/Makefile | 2 +-
arch/riscv/purgatory/Makefile | 2 +-
arch/x86/kernel/Makefile | 2 +-
arch/x86/purgatory/Makefile | 2 +-
kernel/Makefile | 2 +-
scripts/kconfig/expr.h | 1 +
scripts/kconfig/lexer.l | 1 +
scripts/kconfig/parser.y | 47 ++++++++
scripts/kconfig/symbol.c | 16 ++-
.../tests/err_transitional/__init__.py | 14 +++
.../tests/err_transitional/expected_stderr | 7 ++
.../kconfig/tests/transitional/__init__.py | 18 ++++
.../tests/transitional/expected_config | 12 +++
.../kconfig/tests/transitional/initial_config | 16 +++
.../admin-guide/kernel-parameters.txt | 18 ++++
Documentation/kbuild/kconfig-language.rst | 32 ++++++
arch/riscv/include/asm/cfi.h | 4 +-
arch/x86/include/asm/cfi.h | 4 +-
include/asm-generic/vmlinux.lds.h | 2 +-
include/linux/cfi.h | 6 +-
include/linux/cfi_types.h | 8 +-
include/linux/compiler-clang.h | 5 -
include/linux/compiler-gcc.h | 4 -
include/linux/compiler.h | 2 +-
include/linux/compiler_types.h | 4 +-
include/linux/init.h | 8 --
tools/include/linux/cfi_types.h | 6 +-
tools/perf/util/include/linux/linkage.h | 2 +-
arch/arm/mm/cache-fa.S | 2 +-
arch/arm/mm/cache-v4.S | 2 +-
arch/arm/mm/cache-v4wb.S | 4 +-
arch/arm/mm/cache-v4wt.S | 2 +-
arch/arm/mm/cache-v6.S | 2 +-
arch/arm/mm/cache-v7.S | 2 +-
arch/arm/mm/cache-v7m.S | 2 +-
arch/arm/mm/proc-arm1020.S | 2 +-
arch/arm/mm/proc-arm1020e.S | 2 +-
arch/arm/mm/proc-arm1022.S | 2 +-
arch/arm/mm/proc-arm1026.S | 2 +-
arch/arm/mm/proc-arm920.S | 2 +-
arch/arm/mm/proc-arm922.S | 2 +-
arch/arm/mm/proc-arm925.S | 2 +-
arch/arm/mm/proc-arm926.S | 2 +-
arch/arm/mm/proc-arm940.S | 2 +-
arch/arm/mm/proc-arm946.S | 2 +-
arch/arm/mm/proc-feroceon.S | 2 +-
arch/arm/mm/proc-mohawk.S | 2 +-
arch/arm/mm/proc-xsc3.S | 2 +-
arch/arm/mm/tlb-v4.S | 2 +-
arch/arm/kernel/hw_breakpoint.c | 2 +-
arch/arm/kernel/traps.c | 102 ++++++++++++++++++
arch/arm64/kernel/debug-monitors.c | 2 +-
arch/arm64/kernel/traps.c | 4 +-
arch/arm64/kvm/handle_exit.c | 2 +-
arch/arm64/net/bpf_jit_comp.c | 2 +-
arch/riscv/net/bpf_jit_comp64.c | 4 +-
arch/x86/kernel/alternative.c | 44 ++++++--
arch/x86/kernel/cfi.c | 2 +-
arch/x86/kernel/kprobes/core.c | 2 +-
drivers/misc/lkdtm/cfi.c | 2 +-
kernel/module/tree_lookup.c | 2 +-
kernel/configs/hardening.config | 2 +-
74 files changed, 569 insertions(+), 118 deletions(-)
create mode 100644 scripts/kconfig/tests/err_transitional/Kconfig
create mode 100644 scripts/kconfig/tests/transitional/Kconfig
create mode 100644 scripts/kconfig/tests/err_transitional/__init__.py
create mode 100644 scripts/kconfig/tests/err_transitional/expected_stderr
create mode 100644 scripts/kconfig/tests/transitional/__init__.py
create mode 100644 scripts/kconfig/tests/transitional/expected_config
create mode 100644 scripts/kconfig/tests/transitional/initial_config
--
2.34.1
next reply other threads:[~2025-09-04 3:52 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-04 3:46 Kees Cook [this message]
2025-09-04 3:46 ` [PATCH v2 1/9] compiler_types.h: Move __nocfi out of compiler-specific header Kees Cook
2025-09-04 18:28 ` Nathan Chancellor
2025-09-04 3:46 ` [PATCH v2 2/9] x86/traps: Clarify KCFI instruction layout Kees Cook
2025-09-04 3:46 ` [PATCH v2 3/9] x86/cfi: Document the "cfi=" bootparam options Kees Cook
2025-09-04 18:32 ` Nathan Chancellor
2025-09-04 3:46 ` [PATCH v2 4/9] x86/cfi: Standardize on common "CFI:" prefix for CFI reports Kees Cook
2025-09-04 18:40 ` Nathan Chancellor
2025-09-05 0:40 ` Kees Cook
2025-09-04 3:46 ` [PATCH v2 5/9] x86/cfi: Add "debug" option to "cfi=" bootparam Kees Cook
2025-09-04 7:00 ` Peter Zijlstra
2025-09-04 3:46 ` [PATCH v2 6/9] x86/cfi: Remove __noinitretpoline and __noretpoline Kees Cook
2025-09-04 3:46 ` [PATCH v2 7/9] kconfig: Add transitional symbol attribute for migration support Kees Cook
2025-09-04 3:46 ` [PATCH v2 8/9] kcfi: Rename CONFIG_CFI_CLANG to CONFIG_CFI Kees Cook
2025-09-04 3:46 ` [PATCH v2 9/9] ARM: traps: Implement KCFI trap handler for ARM32 Kees Cook
2025-09-04 7:04 ` [PATCH v2 0/9] kcfi: Prepare for GCC support Peter Zijlstra
2025-09-04 16:37 ` Kees Cook
2025-09-04 20:01 ` Peter Zijlstra
2025-09-05 0:42 ` Kees Cook
2025-09-05 7:44 ` Miguel Ojeda
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250904033217.it.414-kees@kernel.org \
--to=kees@kernel.org \
--cc=arnd@arndb.de \
--cc=corbet@lwn.net \
--cc=dwmw2@infradead.org \
--cc=elver@google.com \
--cc=jeff.johnson@oss.qualcomm.com \
--cc=justinstitt@google.com \
--cc=krzysztof.kozlowski@linaro.org \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=mark.rutland@arm.com \
--cc=masahiroy@kernel.org \
--cc=morbo@google.com \
--cc=nathan@kernel.org \
--cc=nick.desaulniers+lkml@gmail.com \
--cc=nicolas.schier@linux.dev \
--cc=ojeda@kernel.org \
--cc=paulmck@kernel.org \
--cc=peterz@infradead.org \
--cc=przemyslaw.kitszel@intel.com \
--cc=rcvalle@google.com \
--cc=rdunlap@infradead.org \
--cc=rmk+kernel@armlinux.org.uk \
--cc=samitolvanen@google.com \
--cc=vegard.nossum@oracle.com \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.