Messages in this thread | | | Date | Tue, 30 Mar 2021 18:33:16 +0900 | From | Masami Hiramatsu <> | Subject | Re: [PATCH] riscv: keep interrupts disabled for BREAKPOINT exception |
| |
Hi Jisheng,
On Tue, 30 Mar 2021 02:16:24 +0800 Jisheng Zhang <jszhang3@mail.ustc.edu.cn> wrote:
> From: Jisheng Zhang <jszhang@kernel.org> > > Current riscv's kprobe handlers are run with both preemption and > interrupt enabled, this violates kprobe requirements. Fix this issue > by keeping interrupts disabled for BREAKPOINT exception.
Not only while the breakpoint exception but also until the end of the single step (maybe you are using __BUG_INSN_32 ??) need to be disable interrupts. Can this do that?
Thank you,
> > Fixes: c22b0bcb1dd0 ("riscv: Add kprobes supported") > Signed-off-by: Jisheng Zhang <jszhang@kernel.org> > --- > arch/riscv/kernel/entry.S | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/arch/riscv/kernel/entry.S b/arch/riscv/kernel/entry.S > index 744f3209c48d..4114b65698ec 100644 > --- a/arch/riscv/kernel/entry.S > +++ b/arch/riscv/kernel/entry.S > @@ -130,6 +130,8 @@ skip_context_tracking: > */ > andi t0, s1, SR_PIE > beqz t0, 1f > + li t0, EXC_BREAKPOINT > + beq s4, t0, 1f > #ifdef CONFIG_TRACE_IRQFLAGS > call trace_hardirqs_on > #endif > -- > 2.31.0 > >
-- Masami Hiramatsu <mhiramat@kernel.org>
| |