Add bpf trampoline support for arm64. Most of the logic is the same as x86.
Tested on qemu, result: #55 fentry_fexit:OK #56 fentry_test:OK #58 fexit_sleep:OK #59 fexit_stress:OK #60 fexit_test:OK #67 get_func_args_test:OK #68 get_func_ip_test:OK #101 modify_return:OK
Xu Kuohai (5): arm64: ftrace: Add ftrace direct call support bpf: Move is_valid_bpf_tramp_flags() to the public trampoline code bpf, arm64: Impelment bpf_arch_text_poke() for arm64 bpf, arm64: bpf trampoline for arm64 selftests/bpf: Fix trivial typo in fentry_fexit.c
arch/arm64/Kconfig | 2 + arch/arm64/include/asm/ftrace.h | 10 + arch/arm64/kernel/asm-offsets.c | 1 + arch/arm64/kernel/entry-ftrace.S | 18 +- arch/arm64/net/bpf_jit.h | 14 +- arch/arm64/net/bpf_jit_comp.c | 390 +++++++++++++++++- arch/x86/net/bpf_jit_comp.c | 20 - include/linux/bpf.h | 5 + kernel/bpf/bpf_struct_ops.c | 4 +- kernel/bpf/trampoline.c | 36 +- .../selftests/bpf/prog_tests/fentry_fexit.c | 4 +- 11 files changed, 470 insertions(+), 34 deletions(-)