From: Heiko Carstens <[EMAIL PROTECTED]>

[S390] Fix kprobes breakpoint handling.

In case of an illegal op the die notifier gets called with DIE_TRAP
instead of DIE_BPT first.

Signed-off-by: Heiko Carstens <[EMAIL PROTECTED]>
Signed-off-by: Martin Schwidefsky <[EMAIL PROTECTED]>
---

 arch/s390/kernel/traps.c |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)

diff -urpN linux-2.6/arch/s390/kernel/traps.c 
linux-2.6-patched/arch/s390/kernel/traps.c
--- linux-2.6/arch/s390/kernel/traps.c  2007-01-26 17:27:47.000000000 +0100
+++ linux-2.6-patched/arch/s390/kernel/traps.c  2007-01-26 17:28:05.000000000 
+0100
@@ -490,8 +490,15 @@ static void illegal_op(struct pt_regs * 
 #endif
                } else
                        signal = SIGILL;
-       } else
-               signal = SIGILL;
+       } else {
+               /*
+                * If we get an illegal op in kernel mode, send it through the
+                * kprobes notifier. If kprobes doesn't pick it up, SIGILL
+                */
+               if (notify_die(DIE_BPT, "bpt", regs, interruption_code,
+                              3, SIGTRAP) != NOTIFY_STOP)
+                       signal = SIGILL;
+       }
 
 #ifdef CONFIG_MATHEMU
         if (signal == SIGFPE)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to