* 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