[IA64] fix Kprobes reentrancy
authorAnil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
Fri, 11 May 2007 16:38:40 +0000 (09:38 -0700)
committerTony Luck <tony.luck@intel.com>
Fri, 11 May 2007 16:38:40 +0000 (09:38 -0700)
commitcdc7dbdfe6edac177acb32e4ca56b525d0743fe7
tree739b21d116a24185eb1704cdcf64206043de2f20
parent25d61578daae697c4a0eb817f42a868af9824f82
[IA64] fix Kprobes reentrancy

In case of reentrance i.e when a probe handler calls a functions which
inturn has a probe, we save a previous kprobe information and just single
step the reentrant probe without calling the actual probe handler.  During
this reentracy period, if an interrupt occurs and if probe happens to
trigger in the inturrupt path, then we were corrupting the previous kprobe(
as we were overriding the previous kprobe info) info their by crashing the
system.  This patch fixes this issues by having a an array of previous
kprobe info struct(with the array size of 2).

This similar technique is not needed on i386 and x86_64 because by default
interrupts are turn off in the break/int3 exception handler.

Signed-off-by: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/kernel/kprobes.c
include/asm-ia64/kprobes.h