mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
bpf: arm64: Add support for instructions array
Add support for the instructions array map type in the arm64 JIT by calling bpf_prog_update_insn_ptrs() with the offsets that map xlated_offset to the jited_offset in the final image. arm64 JIT already has this offset array which was being used for bpf_prog_fill_jited_linfo() and can be used directly for bpf_prog_update_insn_ptrs. Signed-off-by: Puranjay Mohan <puranjay@kernel.org> Reviewed-by: Anton Protopopov <a.s.protopopov@gmail.com> Acked-by: Xu Kuohai <xukuohai@huawei.com> Link: https://lore.kernel.org/r/20251117130732.11107-2-puranjay@kernel.org Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
committed by
Alexei Starovoitov
parent
792f258803
commit
84b1c40d5b
@@ -2231,6 +2231,13 @@ skip_init_ctx:
|
||||
for (i = 0; i <= prog->len; i++)
|
||||
ctx.offset[i] *= AARCH64_INSN_SIZE;
|
||||
bpf_prog_fill_jited_linfo(prog, ctx.offset + 1);
|
||||
/*
|
||||
* The bpf_prog_update_insn_ptrs function expects offsets to
|
||||
* point to the first byte of the jitted instruction (unlike
|
||||
* the bpf_prog_fill_jited_linfo above, which, for historical
|
||||
* reasons, expects to point to the next instruction)
|
||||
*/
|
||||
bpf_prog_update_insn_ptrs(prog, ctx.offset, ctx.ro_image);
|
||||
out_off:
|
||||
if (!ro_header && priv_stack_ptr) {
|
||||
free_percpu(priv_stack_ptr);
|
||||
|
||||
Reference in New Issue
Block a user