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

> Since the kernel segment registers are not prepared at the
> entry of irq-entry code, if a kprobe on such code is
> jump-optimized, accessing per-cpu variables may cause
> kernel panic.
> However, if the kprobe is not optimized, it kicks int3
> exception and set segment registers correctly.
> 
> This checks probe-address and if it is in irq-entry code,
> it prohibits optimizing such kprobes. This means we can
> continuously probing such interrupt handlers by kprobes
> but it is not optimized anymore.
> 
> Signed-off-by: Masami Hiramatsu <mhira...@kernel.org>
> Reported-by: Francis Deslauriers <francis.deslauri...@efficios.com>
> Tested-by: Francis Deslauriers <francis.deslauri...@efficios.com>
> ---
>  Changes in V2:
>   - Make changes in kprobe/opt.c local, not involving unwind,
>     since it requires CONFIG_FRAME_POINTER=y (Thanks Mathieu!)

This patch doesn't even build on x86-64 defconfig ...

arch/x86/kernel/kprobes/opt.c: In function ‘can_optimize’:
arch/x86/kernel/kprobes/opt.c:259:32: error: ‘__irqentry_text_start’ undeclared 
(first use in this function)
      ((paddr >= (unsigned long)__irqentry_text_start) &&
                                ^~~~~~~~~~~~~~~~~~~~~

Thanks,

        Ingo

Reply via email to