summaryrefslogtreecommitdiffstats
path: root/arch/ppc/kernel/traps.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-01-21 22:34:01 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-01-21 22:34:01 +0000
commit9e30c3705aed9fbec4c3304570e4d6e707856bcb (patch)
treeb19e6acb5a67af31a4e7742e05c2166dc3f1444c /arch/ppc/kernel/traps.c
parent72919904796333a20c6a5d5c380091b42e407aa9 (diff)
Merge with Linux 2.3.22.
Diffstat (limited to 'arch/ppc/kernel/traps.c')
-rw-r--r--arch/ppc/kernel/traps.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/arch/ppc/kernel/traps.c b/arch/ppc/kernel/traps.c
index 76a223157..99a9c2bce 100644
--- a/arch/ppc/kernel/traps.c
+++ b/arch/ppc/kernel/traps.c
@@ -101,30 +101,27 @@ MachineCheckException(struct pt_regs *regs)
}
#endif
printk("Machine check in kernel mode.\n");
- printk("Caused by (from msr): ");
- printk("regs %p ",regs);
- switch( regs->msr & 0x0000F000)
- {
- case (1<<12) :
- printk("Machine check signal - probably due to mm fault\n"
- "with mmu off\n");
+ printk("Caused by (from SRR1=%lx): ", regs->msr);
+ switch (regs->msr & 0xF0000) {
+ case 0x80000:
+ printk("Machine check signal\n");
break;
- case (1<<13) :
+ case 0x40000:
printk("Transfer error ack signal\n");
break;
- case (1<<14) :
- printk("Data parity signal\n");
+ case 0x20000:
+ printk("Data parity error signal\n");
break;
- case (1<<15) :
- printk("Address parity signal\n");
+ case 0x10000:
+ printk("Address parity error signal\n");
break;
default:
printk("Unknown values in msr\n");
}
- show_regs(regs);
#if defined(CONFIG_XMON) || defined(CONFIG_KGDB)
debugger(regs);
#endif
+ show_regs(regs);
print_backtrace((unsigned long *)regs->gpr[1]);
panic("machine check");
}