[PATCH 1/1] PATCH: KGDB/KDB Fix no KDB config problem.

From: Mike Travis
Date: Thu Oct 03 2013 - 12:38:43 EST


Some code added to the debug_core module had KDB dependencies
that it shouldn't have.

Signed-off-by: Mike Travis <travis@xxxxxxx>
---
kernel/debug/debug_core.c | 8 ++++----
kernel/debug/debug_core.h | 2 ++
2 files changed, 6 insertions(+), 4 deletions(-)

--- linux.orig/kernel/debug/debug_core.c
+++ linux/kernel/debug/debug_core.c
@@ -575,8 +575,8 @@ return_normal:
raw_spin_lock(&dbg_slave_lock);

#ifdef CONFIG_SMP
- /* If SYSTEM_NMI, slaves are already waiting */
- if (ks->err_code == KDB_REASON_SYSTEM_NMI)
+ /* If send_ready set, slaves are already waiting */
+ if (ks->send_ready)
atomic_set(ks->send_ready, 1);

/* Signal the other CPUs to enter kgdb_wait() */
@@ -682,11 +682,11 @@ kgdb_handle_exception(int evector, int s
if (arch_kgdb_ops.enable_nmi)
arch_kgdb_ops.enable_nmi(0);

+ memset(ks, 0, sizeof(struct kgdb_state));
ks->cpu = raw_smp_processor_id();
ks->ex_vector = evector;
ks->signo = signo;
ks->err_code = ecode;
- ks->kgdb_usethreadid = 0;
ks->linux_regs = regs;

if (kgdb_reenter_check(ks))
@@ -750,7 +750,7 @@ int kgdb_nmicallin(int cpu, int trapnr,
ks->cpu = cpu;
ks->ex_vector = trapnr;
ks->signo = SIGTRAP;
- ks->err_code = KDB_REASON_SYSTEM_NMI;
+ ks->err_code = KGDB_KDB_REASON_SYSTEM_NMI;
ks->linux_regs = regs;
ks->send_ready = send_ready;
kgdb_cpu_enter(ks, regs, DCPU_WANT_MASTER);
--- linux.orig/kernel/debug/debug_core.h
+++ linux/kernel/debug/debug_core.h
@@ -75,11 +75,13 @@ extern int kdb_stub(struct kgdb_state *k
extern int kdb_parse(const char *cmdstr);
extern int kdb_common_init_state(struct kgdb_state *ks);
extern int kdb_common_deinit_state(void);
+#define KGDB_KDB_REASON_SYSTEM_NMI KDB_REASON_SYSTEM_NMI
#else /* ! CONFIG_KGDB_KDB */
static inline int kdb_stub(struct kgdb_state *ks)
{
return DBG_PASS_EVENT;
}
+#define KGDB_KDB_REASON_SYSTEM_NMI 0
#endif /* CONFIG_KGDB_KDB */

#endif /* _DEBUG_CORE_H_ */

--
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/