[PATCH] arm: Make kprobes unregistration SMP safe

Russell King - ARM Linux linux at arm.linux.org.uk
Fri Sep 18 15:44:03 EDT 2009


On Thu, Sep 17, 2009 at 08:40:10PM -0400, Nicolas Pitre wrote:
> On Wed, 16 Sep 2009, Frédéric RISS wrote:
> 
> > ARM kprobes use an illegal instruction to trigger kprobes. In the
> > current implementation, there's a race between the unregistration of a
> > kprobe and the illegal instruction exception handler if they run at the
> > same time on different cores. 
> > 
> > When reading the value of the undefined instruction, the exception
> > handler might get the original legal instruction as just patched
> > concurrently by arch_disarm_kprobe(). When this happen the kprobe
> > handler won't run, and thus the exception handler will oops because it
> > believe it just hit an undefined instruction in kernel space.
> > 
> > The following patch synchronizes the code patching in the kprobes
> > unregistration using stop_machine and thus avoids the above race.
> > 
> > Signed-off-by: Frederic RISS <frederic.riss at gmail.com>
> 
> Acked-by: Nicolas Pitre <nico at fluxnic.net>

Frédéric, please submit to the patch system, thanks.



More information about the linux-arm-kernel mailing list