mirror of https://github.com/torvalds/linux.git
The XOL (execute out-of-line) buffer is used to single-step the
replaced instruction(s) for uprobes. The RISC-V port was missing a
proper fence.i (i$ flushing) after constructing the XOL buffer, which
can result in incorrect execution of stale/broken instructions.
This was found running the BPF selftests "test_progs:
uprobe_autoattach, attach_probe" on the Spacemit K1/X60, where the
uprobes tests randomly blew up.
Reviewed-by: Guo Ren <guoren@kernel.org>
Fixes:
|
||
|---|---|---|
| .. | ||
| Makefile | ||
| decode-insn.c | ||
| decode-insn.h | ||
| kprobes.c | ||
| rethook.c | ||
| rethook.h | ||
| rethook_trampoline.S | ||
| simulate-insn.c | ||
| simulate-insn.h | ||
| uprobes.c | ||