x86, bpf: Use bpf_prog_pack for bpf trampoline
authorSong Liu <song@kernel.org>
Wed, 6 Dec 2023 22:40:54 +0000 (14:40 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Thu, 7 Dec 2023 01:17:21 +0000 (17:17 -0800)
commit3ba026fca8786161b0c4d75be396e61d6816e0a1
tree9ed227cd85ea4549462a4fecca5b1bada101d3c1
parent26ef208c209a0e6eed8942a5d191b39dccfa6e38
x86, bpf: Use bpf_prog_pack for bpf trampoline

There are three major changes here:

1. Add arch_[alloc|free]_bpf_trampoline based on bpf_prog_pack;
2. Let arch_prepare_bpf_trampoline handle ROX input image, this requires
   arch_prepare_bpf_trampoline allocating a temporary RW buffer;
3. Update __arch_prepare_bpf_trampoline() to handle a RW buffer (rw_image)
   and a ROX buffer (image). This part is similar to the image/rw_image
   logic in bpf_int_jit_compile().

Signed-off-by: Song Liu <song@kernel.org>
Acked-by: Ilya Leoshkevich <iii@linux.ibm.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Link: https://lore.kernel.org/r/20231206224054.492250-8-song@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
arch/x86/net/bpf_jit_comp.c