Re: [BUGFIX PATCH] kprobes/x86: Remove IRQ disabling from jprobe handlers

From: Ingo Molnar
Date: Tue Oct 03 2017 - 05:33:53 EST



* Masami Hiramatsu <mhiramat@xxxxxxxxxx> wrote:

> Jprobe actually doesn't need to disable IRQs while calling
> handlers, because Documentation/kprobes.txt says:
>
> -----
> Probe handlers are run with preemption disabled. Depending on the
> architecture and optimization state, handlers may also run with
> interrupts disabled (e.g., kretprobe handlers and optimized kprobe
> handlers run without interrupt disabled on x86/x86-64).
> -----
>
> So let's remove IRQ disabling from jprobes too.
>
> Signed-off-by: Masami Hiramatsu <mhiramat@xxxxxxxxxx>
> ---
> arch/x86/kernel/kprobes/core.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/arch/x86/kernel/kprobes/core.c b/arch/x86/kernel/kprobes/core.c
> index b48e0efd668e..bd36f3c33cd0 100644
> --- a/arch/x86/kernel/kprobes/core.c
> +++ b/arch/x86/kernel/kprobes/core.c
> @@ -1099,8 +1099,6 @@ int setjmp_pre_handler(struct kprobe *p, struct pt_regs *regs)
> * raw stack chunk with redzones:
> */
> __memcpy(kcb->jprobes_stack, (kprobe_opcode_t *)addr, MIN_STACK_SIZE(addr));
> - regs->flags &= ~X86_EFLAGS_IF;
> - trace_hardirqs_off();
> regs->ip = (unsigned long)(jp->entry);
>
> /*

Could you please also do a patch that disables jprobes permanently, in preparation
of eventually removing them later?

Thanks,

Ingo