[PATCH] kprobes: fix race in recovery of reentrant probe
authorKeshavamurthy Anil S <anil.s.keshavamurthy@intel.com>
Wed, 11 Jan 2006 20:17:42 +0000 (12:17 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Thu, 12 Jan 2006 02:42:12 +0000 (18:42 -0800)
commiteb3a72921c8276bf2cd028a458bb83435f16c91c
tree634eff43e1926bdb400d038eb08115193b6a7506
parentdf019b1d8b893d0f0ee5a9b0f71486f0892561ae
[PATCH] kprobes: fix race in recovery of reentrant probe

There is a window where a probe gets removed right after the probe is hit
on some different cpu.  In this case probe handlers can't find a matching
probe instance related to break address.  In this case we need to read the
original instruction at break address to see if that is not a break/int3
instruction and recover safely.

Previous code had a bug where we were not checking for the above race in
case of reentrant probes and the below patch fixes this race.

Tested on IA64, Powerpc, x86_64.

Signed-off-by: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/i386/kernel/kprobes.c
arch/ia64/kernel/kprobes.c
arch/powerpc/kernel/kprobes.c
arch/sparc64/kernel/kprobes.c
arch/x86_64/kernel/kprobes.c