Pu Lehui <pulehui@xxxxxxxxxx> writes: > On 2024/4/16 14:42, Xu Kuohai wrote: >> From: Xu Kuohai <xukuohai@xxxxxxxxxx> >> >> When __bpf_prog_enter() returns zero, the s1 register is not set to zero, >> resulting in incorrect runtime stats. Fix it by setting s1 immediately upon >> the return of __bpf_prog_enter(). >> >> Fixes: 49b5e77ae3e2 ("riscv, bpf: Add bpf trampoline support for RV64") >> Signed-off-by: Xu Kuohai <xukuohai@xxxxxxxxxx> >> --- >> arch/riscv/net/bpf_jit_comp64.c | 6 +++--- >> 1 file changed, 3 insertions(+), 3 deletions(-) >> >> diff --git a/arch/riscv/net/bpf_jit_comp64.c b/arch/riscv/net/bpf_jit_comp64.c >> index 15e482f2c657..e713704be837 100644 >> --- a/arch/riscv/net/bpf_jit_comp64.c >> +++ b/arch/riscv/net/bpf_jit_comp64.c >> @@ -730,6 +730,9 @@ static int invoke_bpf_prog(struct bpf_tramp_link *l, int args_off, int retval_of >> if (ret) >> return ret; >> >> + /* store prog start time */ >> + emit_mv(RV_REG_S1, RV_REG_A0, ctx); >> + >> /* if (__bpf_prog_enter(prog) == 0) >> * goto skip_exec_of_prog; >> */ >> @@ -737,9 +740,6 @@ static int invoke_bpf_prog(struct bpf_tramp_link *l, int args_off, int retval_of >> /* nop reserved for conditional jump */ >> emit(rv_nop(), ctx); >> >> - /* store prog start time */ >> - emit_mv(RV_REG_S1, RV_REG_A0, ctx); >> - >> /* arg1: &args_off */ >> emit_addi(RV_REG_A0, RV_REG_FP, -args_off, ctx); >> if (!p->jited) > > Thanks. > > Reviewed-by: Pu Lehui <pulehui@xxxxxxxxxx> Acked-by: Björn Töpel <bjorn@xxxxxxxxxx>