[PATCH] kprobes: fix bug when probed on task and isr functions
[linux-2.6.git] / arch / i386 / kernel / kprobes.c
index e5cec32..6345b43 100644 (file)
@@ -177,7 +177,8 @@ static int __kprobes kprobe_handler(struct pt_regs *regs)
                   Disarm the probe we just hit, and ignore it. */
                p = get_kprobe(addr);
                if (p) {
-                       if (kprobe_status == KPROBE_HIT_SS) {
+                       if (kprobe_status == KPROBE_HIT_SS &&
+                               *p->ainsn.insn == BREAKPOINT_INSTRUCTION) {
                                regs->eflags &= ~TF_MASK;
                                regs->eflags |= kprobe_saved_eflags;
                                unlock_kprobes();