Message ID | 1343649500-18491-1-git-send-email-anton.vorontsov@linaro.org |
---|---|
State | Accepted |
Commit | b10d22d6e8f76b9e94871aebe0fc62aab2748200 |
Headers | show |
On 07/30/2012 06:58 AM, Anton Vorontsov wrote: > Currently kernel never set KGDB_REASON_NMI. We do now, when we enter > KGDB/KDB from an NMI. > > This is not to be confused with kgdb_nmicallback(), NMI callback is > an entry for the slave CPUs during CPUs roundup, but REASON_NMI is the > entry for the master CPU. No need for confusion here :-) I'll take this one for the kernel merge window if it passes regression tests, no reason not to be setting the stop codes properly. Thanks, Jason.
diff --git a/kernel/debug/kdb/kdb_debugger.c b/kernel/debug/kdb/kdb_debugger.c index 8b68ce7..be7b33b 100644 --- a/kernel/debug/kdb/kdb_debugger.c +++ b/kernel/debug/kdb/kdb_debugger.c @@ -12,6 +12,7 @@ #include <linux/kdb.h> #include <linux/kdebug.h> #include <linux/export.h> +#include <linux/hardirq.h> #include "kdb_private.h" #include "../debug_core.h" @@ -52,6 +53,9 @@ int kdb_stub(struct kgdb_state *ks) if (atomic_read(&kgdb_setting_breakpoint)) reason = KDB_REASON_KEYBOARD; + if (in_nmi()) + reason = KDB_REASON_NMI; + for (i = 0, bp = kdb_breakpoints; i < KDB_MAXBPT; i++, bp++) { if ((bp->bp_enabled) && (bp->bp_addr == addr)) { reason = KDB_REASON_BREAK;
Currently kernel never set KGDB_REASON_NMI. We do now, when we enter KGDB/KDB from an NMI. This is not to be confused with kgdb_nmicallback(), NMI callback is an entry for the slave CPUs during CPUs roundup, but REASON_NMI is the entry for the master CPU. Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org> --- kernel/debug/kdb/kdb_debugger.c | 4 ++++ 1 file changed, 4 insertions(+)