diff options
Diffstat (limited to 'arch/powerpc/xmon/xmon.c')
-rw-r--r-- | arch/powerpc/xmon/xmon.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c index bf299b66f3fc..b481db1dacb4 100644 --- a/arch/powerpc/xmon/xmon.c +++ b/arch/powerpc/xmon/xmon.c | |||
@@ -330,18 +330,17 @@ static void release_output_lock(void) | |||
330 | static int xmon_core(struct pt_regs *regs, int fromipi) | 330 | static int xmon_core(struct pt_regs *regs, int fromipi) |
331 | { | 331 | { |
332 | int cmd = 0; | 332 | int cmd = 0; |
333 | unsigned long msr; | ||
334 | struct bpt *bp; | 333 | struct bpt *bp; |
335 | long recurse_jmp[JMP_BUF_LEN]; | 334 | long recurse_jmp[JMP_BUF_LEN]; |
336 | unsigned long offset; | 335 | unsigned long offset; |
336 | unsigned long flags; | ||
337 | #ifdef CONFIG_SMP | 337 | #ifdef CONFIG_SMP |
338 | int cpu; | 338 | int cpu; |
339 | int secondary; | 339 | int secondary; |
340 | unsigned long timeout; | 340 | unsigned long timeout; |
341 | #endif | 341 | #endif |
342 | 342 | ||
343 | msr = mfmsr(); | 343 | local_irq_save(flags); |
344 | mtmsr(msr & ~MSR_EE); /* disable interrupts */ | ||
345 | 344 | ||
346 | bp = in_breakpoint_table(regs->nip, &offset); | 345 | bp = in_breakpoint_table(regs->nip, &offset); |
347 | if (bp != NULL) { | 346 | if (bp != NULL) { |
@@ -516,7 +515,7 @@ static int xmon_core(struct pt_regs *regs, int fromipi) | |||
516 | 515 | ||
517 | insert_cpu_bpts(); | 516 | insert_cpu_bpts(); |
518 | 517 | ||
519 | mtmsr(msr); /* restore interrupt enable */ | 518 | local_irq_restore(flags); |
520 | 519 | ||
521 | return cmd != 'X' && cmd != EOF; | 520 | return cmd != 'X' && cmd != EOF; |
522 | } | 521 | } |
@@ -1360,8 +1359,12 @@ static void print_bug_trap(struct pt_regs *regs) | |||
1360 | if (is_warning_bug(bug)) | 1359 | if (is_warning_bug(bug)) |
1361 | return; | 1360 | return; |
1362 | 1361 | ||
1362 | #ifdef CONFIG_DEBUG_BUGVERBOSE | ||
1363 | printf("kernel BUG at %s:%u!\n", | 1363 | printf("kernel BUG at %s:%u!\n", |
1364 | bug->file, bug->line); | 1364 | bug->file, bug->line); |
1365 | #else | ||
1366 | printf("kernel BUG at %p!\n", (void *)bug->bug_addr); | ||
1367 | #endif | ||
1365 | } | 1368 | } |
1366 | 1369 | ||
1367 | void excprint(struct pt_regs *fp) | 1370 | void excprint(struct pt_regs *fp) |