mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] LoongArch: Enhance robust of kprobe
@ 2025-04-08  9:27 Tiezhu Yang
  2025-04-09  2:17 ` Jinyang He
  0 siblings, 1 reply; 6+ messages in thread
From: Tiezhu Yang @ 2025-04-08  9:27 UTC (permalink / raw)
  To: Huacai Chen; +Cc: loongarch, linux-kernel

Currently, interrupts need to be disabled before single-step mode is set,
it requires that the CSR_PRMD_PIE must be cleared in save_local_irqflag()
which is called by setup_singlestep(), this is reasonable.

But in the first kprobe breakpoint exception, if the irq is enabled at the
beginning of do_bp(), it will not be disabled at the end of do_bp() due to
the CSR_PRMD_PIE has been cleared in save_local_irqflag(). For this case,
it may corrupt exception context when restoring exception after do_bp() in
handle_bp(), this is not reasonable.

Based on the above analysis, in order to make sure the irq is disabled at
the end of do_bp() for the first kprobe breakpoint exception, it is proper
to disable irq first before clearing CSR_PRMD_PIE in save_local_irqflag().

Fixes: 6d4cc40fb5f5 ("LoongArch: Add kprobes support")
Co-developed-by: Tianyang Zhang <zhangtianyang@loongson.cn>
Signed-off-by: Tianyang Zhang <zhangtianyang@loongson.cn>
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
---
 arch/loongarch/kernel/kprobes.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/loongarch/kernel/kprobes.c b/arch/loongarch/kernel/kprobes.c
index 8ba391cfabb0..6eab97636e6b 100644
--- a/arch/loongarch/kernel/kprobes.c
+++ b/arch/loongarch/kernel/kprobes.c
@@ -113,6 +113,7 @@ NOKPROBE_SYMBOL(set_current_kprobe);
 static void save_local_irqflag(struct kprobe_ctlblk *kcb,
 			       struct pt_regs *regs)
 {
+	local_irq_disable();
 	kcb->saved_status = regs->csr_prmd;
 	regs->csr_prmd &= ~CSR_PRMD_PIE;
 }
-- 
2.42.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2025-04-13  2:22 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-04-08  9:27 [PATCH] LoongArch: Enhance robust of kprobe Tiezhu Yang
2025-04-09  2:17 ` Jinyang He
2025-04-11  2:48   ` Tiezhu Yang
2025-04-11  4:46     ` Jinyang He
2025-04-11 11:37       ` Tiezhu Yang
2025-04-13  2:22         ` Huacai Chen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®