Adds CFI checks to BPF dispatchers on aarch64. E.g. <bpf_dispatcher_*_func>: paciasp stp x29, x30, [sp, #-0x10]! mov x29, sp + ldur w16, [x2, #-0x4] + movk w17, #0x1881 + movk w17, #0xd942, lsl #16 + cmp w16, w17 + b.eq <bpf_dispatcher_*_func+0x24> + brk #0x8222 blr x2 ldp x29, x30, [sp], #0x10 autiasp ret Changes in v4->v5 https://lore.kernel.org/all/wtb6czzpvtqq23t4g6hf7on257dtxzdb4fa4nuq3dtq32odmli@xoyyrtthafar/ - Fix failing BPF selftests from misplaced variable declaration Changes in v3->v4 https://lore.kernel.org/all/fhdcjdzqdqnoehenxbipfaorseeamt3q7fbm7ghe6z5s2chif5@lrhtasolawud/ - Fix authorship attribution. Changes in v2->v3: https://lore.kernel.org/all/20240324211518.93892-1-puranjay12@xxxxxxxxx/ - Simplify cfi_get_func_hash to avoid needless failure case - Use DEFINE_CFI_TYPE as suggested by Mark Rutland Changes in v1->v2: https://lore.kernel.org/bpf/20240227151115.4623-1-puranjay12@xxxxxxxxx/ - Rebased on latest bpf-next/master Mark Rutland (1): cfi: add C CFI type macro Maxwell Bland (1): arm64/cfi,bpf: Use DEFINE_CFI_TYPE in arm64 Puranjay Mohan (1): arm64/cfi,bpf: Support kCFI + BPF on arm64 arch/arm64/include/asm/cfi.h | 23 ++++++++++++++++++++++ arch/arm64/kernel/alternative.c | 18 +++++++++++++++++ arch/arm64/net/bpf_jit_comp.c | 21 +++++++++++++++++--- arch/riscv/kernel/cfi.c | 34 ++------------------------------ arch/x86/kernel/alternative.c | 35 +++------------------------------ include/linux/cfi_types.h | 23 ++++++++++++++++++++++ 6 files changed, 87 insertions(+), 67 deletions(-) create mode 100644 arch/arm64/include/asm/cfi.h -- Sorry for the extreme delay Puranjay and other maintainers on the submission for this. The past month I was on incident response rotation here at Moto and my hands were full with scripting build scanning steps and other product deployment nonsense. Better late than never, though, if these changes have not been merged yet. (-: Tested on a cortex-a76 qemu instance and self-tests are matching the baseline bpf-next success rate (Summary: 509/3700 PASSED, 77 SKIPPED, 37 FAILED). Thanks for your review and regards, Maxwell 2.39.2