[PATCH bpf-next v8 0/2] Support kCFI + BPF on arm64

From: Sami Tolvanen
Date: Mon Mar 10 2025 - 18:30:03 EST


Hi folks,

These patches add KCFI types to arm64 BPF JIT output. Puranjay and
Maxwell have been working on this for some time now, but I haven't
seen any progress since June 2024, so I decided to pick up the latest
version[1] posted by Maxwell and fix the few remaining issues I
noticed. I confirmed that with these patches applied, I no longer see
CFI failures when running BPF self-tests on arm64.

[1] https://lore.kernel.org/linux-arm-kernel/ptrugmna4xb5o5lo4xislf4rlz7avdmd4pfho5fjwtjj7v422u@iqrwfrbwuxrq/

Sami

---

v8:
- Changed DEFINE_CFI_TYPE to use .4byte to match __CFI_TYPE.
- Changed cfi_get_func_hash() to again use get_kernel_nofault().
- Fixed a panic in bpf_jit_free() by resetting prog->bpf_func before
calling bpf_jit_binary_pack_hdr().

---

Mark Rutland (1):
cfi: add C CFI type macro

Puranjay Mohan (1):
arm64/cfi,bpf: Support kCFI + BPF on arm64

arch/arm64/include/asm/cfi.h | 23 ++++++++++++++++++++++
arch/arm64/kernel/alternative.c | 25 +++++++++++++++++++++++
arch/arm64/net/bpf_jit_comp.c | 22 ++++++++++++++++++---
arch/riscv/kernel/cfi.c | 35 +++------------------------------
arch/x86/kernel/alternative.c | 35 +++------------------------------
include/linux/cfi_types.h | 23 ++++++++++++++++++++++
6 files changed, 96 insertions(+), 67 deletions(-)
create mode 100644 arch/arm64/include/asm/cfi.h

--
2.49.0.rc0.332.g42c0ae87b1-goog