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) |
