]> err.no Git - linux-2.6/blobdiff - arch/powerpc/xmon/xmon.c
Merge branch 'for-linus' of git://git.kernel.dk/data/git/linux-2.6-block
[linux-2.6] / arch / powerpc / xmon / xmon.c
index bf299b66f3fc6c0198b0f88110ea718915251769..b481db1dacb4a7b3f2c35e49a0789612bbc591a7 100644 (file)
@@ -330,18 +330,17 @@ static void release_output_lock(void)
 static int xmon_core(struct pt_regs *regs, int fromipi)
 {
        int cmd = 0;
-       unsigned long msr;
        struct bpt *bp;
        long recurse_jmp[JMP_BUF_LEN];
        unsigned long offset;
+       unsigned long flags;
 #ifdef CONFIG_SMP
        int cpu;
        int secondary;
        unsigned long timeout;
 #endif
 
-       msr = mfmsr();
-       mtmsr(msr & ~MSR_EE);   /* disable interrupts */
+       local_irq_save(flags);
 
        bp = in_breakpoint_table(regs->nip, &offset);
        if (bp != NULL) {
@@ -516,7 +515,7 @@ static int xmon_core(struct pt_regs *regs, int fromipi)
 
        insert_cpu_bpts();
 
-       mtmsr(msr);             /* restore interrupt enable */
+       local_irq_restore(flags);
 
        return cmd != 'X' && cmd != EOF;
 }
@@ -1360,8 +1359,12 @@ static void print_bug_trap(struct pt_regs *regs)
        if (is_warning_bug(bug))
                return;
 
+#ifdef CONFIG_DEBUG_BUGVERBOSE
        printf("kernel BUG at %s:%u!\n",
               bug->file, bug->line);
+#else
+       printf("kernel BUG at %p!\n", (void *)bug->bug_addr);
+#endif
 }
 
 void excprint(struct pt_regs *fp)