mirror of
https://github.com/torvalds/linux.git
synced 2026-10-16 21:00:02 +02:00
The c.jal instruction is currently marked REJECTED in kprobes instruction decoding, but it should be SIMULATED like other compressed jump instructions. Add simulate_c_jal() which saves the return address to RA and sets the program counter to the target offset, reusing simulate_c_j for the common jump logic. Although c.jal is RV32-only, the function compiles unconditionally. On RV64, riscv_insn_is_c_jal() always returns 0, so the simulation code is never invoked and the small overhead in kernel size is acceptable. Signed-off-by: Xiaofeng Yuan <xiaofengmian@163.com> Reviewed-by: Charlie Jenkins <thecharlesjenkins@gmail.com> Tested-by: Charlie Jenkins <thecharlesjenkins@gmail.com> Reviewed-by: Nam Cao <namcao@linutronix.de> Tested-by: Nam Cao <namcao@linutronix.de> Link: https://patch.msgid.link/20260701081033.49871-2-xiaofengmian@163.com Signed-off-by: Paul Walmsley <pjw@kernel.org> |
||
|---|---|---|
| .. | ||
| decode-insn.c | ||
| decode-insn.h | ||
| kprobes.c | ||
| Makefile | ||
| rethook_trampoline.S | ||
| rethook.c | ||
| rethook.h | ||
| simulate-insn.c | ||
| simulate-insn.h | ||
| uprobes.c | ||