[PATCH] riscv: kprobes: free insn slot in arch_remove_kprobe() to avoid memory leak
Xiaofeng Yuan <[email protected]> Fri, 31 Jul 2026 18:09:40 +0800
| Newsgroups | org.infradead.lists.linux-riscv |
|---|---|
| Message-ID | <[email protected]> |
When a kprobe is removed, arch_remove_kprobe() does not free the instruction slot allocated by arch_prepare_kprobe(). This causes a memory leak every time a kprobe is unregistered. Other architectures such as arm64, x86, and powerpc all free the slot in their arch_remove_kprobe() implementations. Add the missing free_insn_slot() call for RISC-V. Signed-off-by: Xiaofeng Yuan <[email protected]> --- arch/riscv/kernel/probes/kprobes.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/riscv/kernel/probes/kprobes.c b/arch/riscv/kernel/probes/kprobes.c index 9e2afabf94..a76eab2972 100644 --- a/arch/riscv/kernel/probes/kprobes.c +++ b/arch/riscv/kernel/probes/kprobes.c @@ -128,6 +128,10 @@ void __kprobes arch_disarm_kprobe(struct kprobe *p) void __kprobes arch_remove_kprobe(struct kprobe *p) { + if (p->ainsn.api.insn) { + free_insn_slot(p->ainsn.api.insn, 0); + p->ainsn.api.insn = NULL; + } } static void __kprobes save_previous_kprobe(struct kprobe_ctlblk *kcb) -- 2.43.0 _______________________________________________ linux-riscv mailing list [email protected] http://lists.infradead.org/mailman/listinfo/linux-riscv