diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-01-21 22:34:01 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-01-21 22:34:01 +0000 |
commit | 9e30c3705aed9fbec4c3304570e4d6e707856bcb (patch) | |
tree | b19e6acb5a67af31a4e7742e05c2166dc3f1444c /arch/ppc/kernel/traps.c | |
parent | 72919904796333a20c6a5d5c380091b42e407aa9 (diff) |
Merge with Linux 2.3.22.
Diffstat (limited to 'arch/ppc/kernel/traps.c')
-rw-r--r-- | arch/ppc/kernel/traps.c | 23 |
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"); } |