|
From: Ananth N M. <an...@in...> - 2010-04-28 03:00:16
|
On Tue, Apr 27, 2010 at 06:33:49PM -0400, Masami Hiramatsu wrote: > 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 senario. > ------- > CPU1 CPU2 > hit int3 > check int3 exists > remove int3 > remove kprobe from hlist > get kprobe from hlist > no kprobe->OOPS! > ------- Do you have a testcase for this issue? > 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 > ------ You may also want to fix up the comment on top of kprobe_handler() about the interrupt gate as its only true for x86_32 and not x86_64, right? > Signed-off-by: Masami Hiramatsu <mhi...@re...> > Cc: Ananth N Mavinakayanahalli <an...@in...> > Cc: Dave Anderson <and...@re...> > Cc: Ingo Molnar <mi...@el...> Acked-by: Ananth N Mavinakayanahalli <an...@in...> |