From: Pu Lehui Date: Thu, 24 Aug 2023 09:49:58 +0000 (+0000) Subject: riscv, bpf: Support 32-bit offset jmp insn X-Git-Tag: v6.6.17~3946^2~4^2~4^2~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d9839f16c1502556993552746452c862cb1c41af;p=platform%2Fkernel%2Flinux-rpi.git riscv, bpf: Support 32-bit offset jmp insn Add support 32-bit offset jmp instruction for RV64. Signed-off-by: Pu Lehui Acked-by: Björn Töpel Link: https://lore.kernel.org/r/20230824095001.3408573-5-pulehui@huaweicloud.com Signed-off-by: Alexei Starovoitov --- diff --git a/arch/riscv/net/bpf_jit_comp64.c b/arch/riscv/net/bpf_jit_comp64.c index bcf1e75..076619f 100644 --- a/arch/riscv/net/bpf_jit_comp64.c +++ b/arch/riscv/net/bpf_jit_comp64.c @@ -1327,7 +1327,11 @@ out_be: /* JUMP off */ case BPF_JMP | BPF_JA: - rvoff = rv_offset(i, off, ctx); + case BPF_JMP32 | BPF_JA: + if (BPF_CLASS(code) == BPF_JMP) + rvoff = rv_offset(i, off, ctx); + else + rvoff = rv_offset(i, imm, ctx); ret = emit_jump_and_link(RV_REG_ZERO, rvoff, true, ctx); if (ret) return ret;