On 2026/7/16 16:08, Björn Töpel wrote: > Feng Jiang <[email protected]> writes: > >> Implement arch_bpf_timed_may_goto() for the RV64 JIT. The argument and >> return value are carried in BPF_REG_AX, and BPF R0-R5 are preserved >> across the call to the generic bpf_check_timed_may_goto(). >> >> Enable bpf_jit_supports_timed_may_goto() so the verifier uses the timed >> expansion path. > > Thanks for working on this! > >> diff --git a/arch/riscv/net/bpf_jit_comp64.c >> b/arch/riscv/net/bpf_jit_comp64.c >> index c03c1de16b79..4f88a446278a 100644 >> --- a/arch/riscv/net/bpf_jit_comp64.c >> +++ b/arch/riscv/net/bpf_jit_comp64.c >> @@ -1841,7 +1841,13 @@ int bpf_jit_emit_insn(const struct bpf_insn *insn, >> struct rv_jit_context *ctx, >> if (ret) >> return ret; >> >> - if (insn->src_reg != BPF_PSEUDO_CALL) >> + /* >> + * arch_bpf_timed_may_goto() is emitted by the verifier and >> + * returns its result in BPF_REG_AX instead of BPF_REG_0, so >> + * skip the normal "move return register into R0". >> + */ >> + if (insn->src_reg != BPF_PSEUDO_CALL && >> + addr != (u64)arch_bpf_timed_may_goto) > > Nit: In the future, please use full 100 chars lines, instead of breaking > the line. > > Would it be possible to add a test for this custom ABI? The fact that it > was missed in v1 hints that it would be good. > > I asked an LLM to suggest a test [1]. Feel free to be inspired by it. > ;-) > > > Björn > > [1] https://paste.debian.net/hidden/9dd769d6
Thanks Björn! I'll fix the line wrap and add a test for the custom ABI. Will send a v4 later. -- With Best Regards, Feng Jiang

