diff options
Diffstat (limited to 'kernel/debug/kdb/kdb_debugger.c')
-rw-r--r-- | kernel/debug/kdb/kdb_debugger.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/debug/kdb/kdb_debugger.c b/kernel/debug/kdb/kdb_debugger.c index 328d18ef31e4..8859ca34dcfe 100644 --- a/kernel/debug/kdb/kdb_debugger.c +++ b/kernel/debug/kdb/kdb_debugger.c | |||
@@ -69,7 +69,10 @@ int kdb_stub(struct kgdb_state *ks) | |||
69 | if (atomic_read(&kgdb_setting_breakpoint)) | 69 | if (atomic_read(&kgdb_setting_breakpoint)) |
70 | reason = KDB_REASON_KEYBOARD; | 70 | reason = KDB_REASON_KEYBOARD; |
71 | 71 | ||
72 | if (in_nmi()) | 72 | if (ks->err_code == KDB_REASON_SYSTEM_NMI && ks->signo == SIGTRAP) |
73 | reason = KDB_REASON_SYSTEM_NMI; | ||
74 | |||
75 | else if (in_nmi()) | ||
73 | reason = KDB_REASON_NMI; | 76 | reason = KDB_REASON_NMI; |
74 | 77 | ||
75 | for (i = 0, bp = kdb_breakpoints; i < KDB_MAXBPT; i++, bp++) { | 78 | for (i = 0, bp = kdb_breakpoints; i < KDB_MAXBPT; i++, bp++) { |