diff options
| author | Jakub Kicinski <[email protected]> | 2019-01-22 22:45:25 -0800 |
|---|---|---|
| committer | Alexei Starovoitov <[email protected]> | 2019-01-23 17:35:32 -0800 |
| commit | e90287f3aaf666c9e18e60f889f82ecfb0ee3c5d (patch) | |
| tree | 4b346097cc75fb2772cdeaa98a0c711d46a2501e | |
| parent | 08ca90afba255d05dc3253caa44056e7aecbe8c5 (diff) | |
nfp: bpf: don't use instruction number for jump target
Instruction number is meaningless at code gen phase. The target
of the instruction is overwritten by nfp_fixup_branches(). The
convention is to put the raw offset in target address as a place
holder. See cmp_* functions.
Signed-off-by: Jakub Kicinski <[email protected]>
Reviewed-by: Quentin Monnet <[email protected]>
Signed-off-by: Alexei Starovoitov <[email protected]>
| -rw-r--r-- | drivers/net/ethernet/netronome/nfp/bpf/jit.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/netronome/nfp/bpf/jit.c b/drivers/net/ethernet/netronome/nfp/bpf/jit.c index e23ca90289f7..323587dee498 100644 --- a/drivers/net/ethernet/netronome/nfp/bpf/jit.c +++ b/drivers/net/ethernet/netronome/nfp/bpf/jit.c @@ -3182,7 +3182,7 @@ bpf_to_bpf_call(struct nfp_prog *nfp_prog, struct nfp_insn_meta *meta) wrp_immed_relo(nfp_prog, imm_b(nfp_prog), 0, RELO_IMMED_REL); } else { ret_tgt = nfp_prog_current_offset(nfp_prog) + 2; - emit_br(nfp_prog, BR_UNC, meta->n + 1 + meta->insn.imm, 1); + emit_br(nfp_prog, BR_UNC, meta->insn.imm, 1); offset_br = nfp_prog_current_offset(nfp_prog); } wrp_immed_relo(nfp_prog, ret_reg(nfp_prog), ret_tgt, RELO_IMMED_REL); |