On Thu, Jun 11, 2026 at 08:14:27AM +0200, Nam Cao wrote:
> Charlie Jenkins via B4 Relay
> <[email protected]> writes:
> >  bool __kprobes simulate_c_jr(u32 opcode, unsigned long addr, struct 
> > pt_regs *regs)
> >  {
> > -   return simulate_c_jr_jalr(opcode, addr, regs, false);
> > +   unsigned long next_addr;
> > +   unsigned long *regs_ptr = (unsigned long *)regs;
> > +
> > +   next_addr = regs_ptr[riscv_insn_c_jr_extract_xs1(opcode)];
> > +   instruction_pointer_set(regs, next_addr);
> > +
> > +   regs->ra = addr + 2;
> 
> c.jr does not change ra.

Looks like my tests need some work :/

> 
> > +   return true;
> >  }
> 
> We have CONFIG_RISCV_KPROBES_KUNIT now, please try that.

I can try to extend those to cover more.

- Charlie

> 
> Nam

Reply via email to