diff options
author | Masami Hiramatsu <mhiramat@redhat.com> | 2010-04-27 18:33:49 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2010-05-11 09:14:25 +0200 |
commit | 829e92458532b1dbfeb972435d45bb060cdbf5a3 (patch) | |
tree | 755f5c5e590aec21730afc2bcd680629fe075770 /tools | |
parent | de068ec048f807d4f62b7dda100c23a1365f086f (diff) | |
download | linux-3.10-829e92458532b1dbfeb972435d45bb060cdbf5a3.tar.gz linux-3.10-829e92458532b1dbfeb972435d45bb060cdbf5a3.tar.bz2 linux-3.10-829e92458532b1dbfeb972435d45bb060cdbf5a3.zip |
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 <mhiramat@redhat.com>
Acked-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Cc: systemtap <systemtap@sources.redhat.com>
Cc: DLE <dle-develop@lists.sourceforge.net>
Cc: Dave Anderson <anderson@redhat.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <20100427223348.2322.9112.stgit@localhost6.localdomain6>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'tools')
0 files changed, 0 insertions, 0 deletions