Skip to content

Commit fc8b137

Browse files
Mike Travisingomolnar
authored andcommitted
kgdb/kdb: Fix no KDB config problem
Some code added to the debug_core module had KDB dependencies that it shouldn't have. Move the KDB dependent REASON back to the caller to remove the dependency in the debug core code. Update the call from the UV NMI handler to conform to the new interface. Signed-off-by: Mike Travis <travis@sgi.com> Reviewed-by: Hedi Berriche <hedi@sgi.com> Cc: Russ Anderson <rja@sgi.com> Cc: Jason Wessel <jason.wessel@windriver.com> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Paul Mackerras <paulus@samba.org> Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> Link: http://lkml.kernel.org/r/20140114162551.318251993@asylum.americas.sgi.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
1 parent 981c3a4 commit fc8b137

4 files changed

Lines changed: 6 additions & 6 deletions

File tree

arch/x86/platform/uv/uv_nmi.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -546,7 +546,7 @@ static void uv_call_kdb(int cpu, struct pt_regs *regs, int master)
546546
if (master) {
547547
/* call KGDB NMI handler as MASTER */
548548
ret = kgdb_nmicallin(cpu, X86_TRAP_NMI, regs,
549-
&uv_nmi_slave_continue);
549+
KDB_REASON_SYSTEM_NMI, &uv_nmi_slave_continue);
550550
if (ret) {
551551
pr_alert("KDB returned error, is kgdboc set?\n");
552552
atomic_set(&uv_nmi_slave_continue, SLAVE_EXIT);

include/linux/kgdb.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,8 @@ extern int
310310
kgdb_handle_exception(int ex_vector, int signo, int err_code,
311311
struct pt_regs *regs);
312312
extern int kgdb_nmicallback(int cpu, void *regs);
313-
extern int kgdb_nmicallin(int cpu, int trapnr, void *regs, atomic_t *snd_rdy);
313+
extern int kgdb_nmicallin(int cpu, int trapnr, void *regs, int err_code,
314+
atomic_t *snd_rdy);
314315
extern void gdbstub_exit(int status);
315316

316317
extern int kgdb_single_step;

kernel/debug/debug_core.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -736,7 +736,8 @@ int kgdb_nmicallback(int cpu, void *regs)
736736
return 1;
737737
}
738738

739-
int kgdb_nmicallin(int cpu, int trapnr, void *regs, atomic_t *send_ready)
739+
int kgdb_nmicallin(int cpu, int trapnr, void *regs, int err_code,
740+
atomic_t *send_ready)
740741
{
741742
#ifdef CONFIG_SMP
742743
if (!kgdb_io_ready(0) || !send_ready)
@@ -750,7 +751,7 @@ int kgdb_nmicallin(int cpu, int trapnr, void *regs, atomic_t *send_ready)
750751
ks->cpu = cpu;
751752
ks->ex_vector = trapnr;
752753
ks->signo = SIGTRAP;
753-
ks->err_code = KGDB_KDB_REASON_SYSTEM_NMI;
754+
ks->err_code = err_code;
754755
ks->linux_regs = regs;
755756
ks->send_ready = send_ready;
756757
kgdb_cpu_enter(ks, regs, DCPU_WANT_MASTER);

kernel/debug/debug_core.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,13 +75,11 @@ extern int kdb_stub(struct kgdb_state *ks);
7575
extern int kdb_parse(const char *cmdstr);
7676
extern int kdb_common_init_state(struct kgdb_state *ks);
7777
extern int kdb_common_deinit_state(void);
78-
#define KGDB_KDB_REASON_SYSTEM_NMI KDB_REASON_SYSTEM_NMI
7978
#else /* ! CONFIG_KGDB_KDB */
8079
static inline int kdb_stub(struct kgdb_state *ks)
8180
{
8281
return DBG_PASS_EVENT;
8382
}
84-
#define KGDB_KDB_REASON_SYSTEM_NMI 0
8583
#endif /* CONFIG_KGDB_KDB */
8684

8785
#endif /* _DEBUG_CORE_H_ */

0 commit comments

Comments
 (0)