> > Fixes: b6bd53f9c4e8 ("MIPS: Add missing file for eBPF JIT.")
> > Reported-by: Mahshid Khezri <khezri.mahshid@xxxxxxxxx>
> > Signed-off-by: Paul Chaignon <paul.chaignon@xxxxxxxxxx>
>
> I'd be happy to take this through mips-fixes, but equally happy for it
> to go through the BPF/net trees in which case:
>
> Acked-by: Paul Burton <paulburton@xxxxxxxxxx>
>
> Thanks,
> Paul
>
> > ---
> > arch/mips/net/ebpf_jit.c | 9 +++++----
> > 1 file changed, 5 insertions(+), 4 deletions(-)
> >
> > diff --git a/arch/mips/net/ebpf_jit.c b/arch/mips/net/ebpf_jit.c
> > index 46b76751f3a5..3ec69d9cbe88 100644
> > --- a/arch/mips/net/ebpf_jit.c
> > +++ b/arch/mips/net/ebpf_jit.c
> > @@ -604,6 +604,7 @@ static void emit_const_to_reg(struct jit_ctx
> > *ctx, int dst, u64 value)
> > static int emit_bpf_tail_call(struct jit_ctx *ctx, int this_idx)
> > {
> > int off, b_off;
> > + int tcc_reg;
> >
> > ctx->flags |= EBPF_SEEN_TC;
> > /*
> > @@ -616,14 +617,14 @@ static int emit_bpf_tail_call(struct jit_ctx
> > *ctx, int this_idx)
> > b_off = b_imm(this_idx + 1, ctx);
> > emit_instr(ctx, bne, MIPS_R_AT, MIPS_R_ZERO, b_off);
> > /*
> > - * if (--TCC < 0)
> > + * if (TCC-- < 0)
> > * goto out;
> > */
> > /* Delay slot */
> > - emit_instr(ctx, daddiu, MIPS_R_T5,
> > - (ctx->flags & EBPF_TCC_IN_V1) ? MIPS_R_V1 : MIPS_R_S4, -1);
> > + tcc_reg = (ctx->flags & EBPF_TCC_IN_V1) ? MIPS_R_V1 : MIPS_R_S4;
> > + emit_instr(ctx, daddiu, MIPS_R_T5, tcc_reg, -1);
> > b_off = b_imm(this_idx + 1, ctx);
> > - emit_instr(ctx, bltz, MIPS_R_T5, b_off);
> > + emit_instr(ctx, bltz, tcc_reg, b_off);
> > /*
> > * prog = array->ptrs[index];
> > * if (prog == NULL)
> > --
> > 2.17.1
> >
Regards,
ᚷ ᛖ ᚢ ᚦ ᚠ ᚱ