diff options
author | Masami Hiramatsu <[email protected]> | 2010-04-27 18:33:49 -0400 |
---|---|---|
committer | Ingo Molnar <[email protected]> | 2010-05-11 09:14:25 +0200 |
commit | 829e92458532b1dbfeb972435d45bb060cdbf5a3 (patch) | |
tree | 755f5c5e590aec21730afc2bcd680629fe075770 /lib/flex_array.c | |
parent | de068ec048f807d4f62b7dda100c23a1365f086f (diff) |
kprobes/x86: Fix removed int3 checking order
Fix kprobe/x86 to check removed int3 when failing to get kprobe
from hlist. Since we have a time window between checking int3
exists on probed address and getting kprobe on that address,
we can have following scenario:
-------
CPU1 CPU2
hit int3
check int3 exists
remove int3
remove kprobe from hlist
get kprobe from hlist
no kprobe->OOPS!
-------
This patch moves int3 checking if there is no kprobe on that
address for fixing this problem as follows:
------
CPU1 CPU2
hit int3
remove int3
remove kprobe from hlist
get kprobe from hlist
no kprobe->check int3 exists
->rollback&retry
------
Signed-off-by: Masami Hiramatsu <[email protected]>
Acked-by: Ananth N Mavinakayanahalli <[email protected]>
Cc: systemtap <[email protected]>
Cc: DLE <[email protected]>
Cc: Dave Anderson <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Mike Galbraith <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Arnaldo Carvalho de Melo <[email protected]>
Cc: Frederic Weisbecker <[email protected]>
LKML-Reference: <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'lib/flex_array.c')
0 files changed, 0 insertions, 0 deletions