* Masami Hiramatsu <mhira...@kernel.org> wrote:

> +/*
> + * Interrupts are disabled on entry as trap3 is an interrupt gate and they
> + * remain disabled throughout this function.
> + */
> +int kprobe_int3_handler(struct pt_regs *regs)
> +{
> +     struct kprobe_ctlblk *kcb;
> +     int ret;
> +
> +     if (user_mode(regs))
> +             return 0;
> +
> +     /*
> +      * We don't want to be preempted for the entire
> +      * duration of kprobe processing.
> +      */
> +     preempt_disable();
> +
> +     kcb = get_kprobe_ctlblk();
> +     ret = kprobe_int3_dispatcher(regs, kcb);
> +
> +     if (!kprobe_ready_for_singlestep(regs))
> +             preempt_enable_no_resched();
> +
> +     return ret;

What's the point of disabling preemption, if IRQs are disabled already?

There's no preemption when IRQs are off...

Thanks,

        Ingo

Reply via email to