On Thu, Jul 30, 2020 at 4:45 AM Jerry Cruntime <jerry.c.t@xxxxxx> wrote: > > The o32, n32 and n64 calling conventions require the return > value to be stored in $v0 which maps to $2 register, i.e., > the second register. > > Fixes: c1932cd ("bpf: Add MIPS support to samples/bpf.") > --- > tools/lib/bpf/bpf_tracing.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/lib/bpf/bpf_tracing.h b/tools/lib/bpf/bpf_tracing.h > index 58eceb884..ae205dcf8 100644 > --- a/tools/lib/bpf/bpf_tracing.h > +++ b/tools/lib/bpf/bpf_tracing.h > @@ -215,7 +215,7 @@ struct pt_regs; > #define PT_REGS_PARM5(x) ((x)->regs[8]) I've quickly looked up some doc on MIPS calling convention, doesn't seem like regs[8] is actually used for 5th input argument (the doc I found documented only the use of $4 through $7 for first 4 args). Should we drop PT_REGS_PARM5() for MIPS, while at it? > #define PT_REGS_RET(x) ((x)->regs[31]) > #define PT_REGS_FP(x) ((x)->regs[30]) /* Works only with > CONFIG_FRAME_POINTER */ > -#define PT_REGS_RC(x) ((x)->regs[1]) > +#define PT_REGS_RC(x) ((x)->regs[2]) This looks good, though. > #define PT_REGS_SP(x) ((x)->regs[29]) > #define PT_REGS_IP(x) ((x)->cp0_epc) > > -- > 2.17.1