]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
bpf: arm64: Add support for indirect jumps
authorPuranjay Mohan <puranjay@kernel.org>
Mon, 17 Nov 2025 13:07:30 +0000 (13:07 +0000)
committerAlexei Starovoitov <ast@kernel.org>
Sat, 22 Nov 2025 00:40:21 +0000 (16:40 -0800)
commitf4a66cf1cb141997be35465bcd44c45404146441
tree9a298f3966cb67a36209099abe2e2676738dbece
parent84b1c40d5b4dae7493b4afb5b7e697dafeced8b2
bpf: arm64: Add support for indirect jumps

Add support for a new instruction

BPF_JMP|BPF_X|BPF_JA, SRC=0, DST=Rx, off=0, imm=0

which does an indirect jump to a location stored in Rx.  The register
Rx should have type PTR_TO_INSN. This new type assures that the Rx
register contains a value (or a range of values) loaded from a
correct jump table – map of type instruction array.

ARM64 JIT supports indirect jumps to all registers through the A64_BR()
macro, use it to implement this new instruction.

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-3-puranjay@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
arch/arm64/net/bpf_jit_comp.c