Skip to content

Commit

Permalink
[PATCH] ppc64: allow xmon=off
Browse files Browse the repository at this point in the history
If both CONFIG_XMON and CONFIG_XMON_DEFAULT is enabled in the .config,
there is no way to disable xmon again. setup_system calls first xmon_init,
later parse_early_param. So a new 'xmon=off' cmdline option will do the right
thing.

Signed-off-by: Olaf Hering <olh@suse.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
  • Loading branch information
Olaf Hering authored and Paul Mackerras committed Aug 29, 2005
1 parent bef5686 commit b13cfd1
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 14 deletions.
8 changes: 5 additions & 3 deletions arch/ppc64/kernel/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -627,7 +627,7 @@ void __init setup_system(void)
* Initialize xmon
*/
#ifdef CONFIG_XMON_DEFAULT
xmon_init();
xmon_init(1);
#endif
/*
* Register early console
Expand Down Expand Up @@ -1343,11 +1343,13 @@ static int __init early_xmon(char *p)
/* ensure xmon is enabled */
if (p) {
if (strncmp(p, "on", 2) == 0)
xmon_init();
xmon_init(1);
if (strncmp(p, "off", 3) == 0)
xmon_init(0);
if (strncmp(p, "early", 5) != 0)
return 0;
}
xmon_init();
xmon_init(1);
debugger(NULL);

return 0;
Expand Down
2 changes: 1 addition & 1 deletion arch/ppc64/xmon/start.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ static void sysrq_handle_xmon(int key, struct pt_regs *pt_regs,
struct tty_struct *tty)
{
/* ensure xmon is enabled */
xmon_init();
xmon_init(1);
debugger(pt_regs);
}

Expand Down
28 changes: 19 additions & 9 deletions arch/ppc64/xmon/xmon.c
Original file line number Diff line number Diff line change
Expand Up @@ -2496,15 +2496,25 @@ static void dump_stab(void)
}
}

void xmon_init(void)
{
__debugger = xmon;
__debugger_ipi = xmon_ipi;
__debugger_bpt = xmon_bpt;
__debugger_sstep = xmon_sstep;
__debugger_iabr_match = xmon_iabr_match;
__debugger_dabr_match = xmon_dabr_match;
__debugger_fault_handler = xmon_fault_handler;
void xmon_init(int enable)
{
if (enable) {
__debugger = xmon;
__debugger_ipi = xmon_ipi;
__debugger_bpt = xmon_bpt;
__debugger_sstep = xmon_sstep;
__debugger_iabr_match = xmon_iabr_match;
__debugger_dabr_match = xmon_dabr_match;
__debugger_fault_handler = xmon_fault_handler;
} else {
__debugger = NULL;
__debugger_ipi = NULL;
__debugger_bpt = NULL;
__debugger_sstep = NULL;
__debugger_iabr_match = NULL;
__debugger_dabr_match = NULL;
__debugger_fault_handler = NULL;
}
}

void dump_segments(void)
Expand Down
2 changes: 1 addition & 1 deletion include/asm-ppc64/system.h
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ DEBUGGER_BOILERPLATE(debugger_dabr_match)
DEBUGGER_BOILERPLATE(debugger_fault_handler)

#ifdef CONFIG_XMON
extern void xmon_init(void);
extern void xmon_init(int enable);
#endif

#else
Expand Down

0 comments on commit b13cfd1

Please sign in to comment.