Skip to content

Commit

Permalink
[MIPS] Print more information if we're struck by a machine check exce…
Browse files Browse the repository at this point in the history
…ption.

    
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  • Loading branch information
Ralf Baechle committed Jun 5, 2006
1 parent 722ace9 commit cac4bcb
Showing 1 changed file with 17 additions and 2 deletions.
19 changes: 17 additions & 2 deletions arch/mips/kernel/traps.c
Original file line number Diff line number Diff line change
Expand Up @@ -819,15 +819,30 @@ asmlinkage void do_watch(struct pt_regs *regs)

asmlinkage void do_mcheck(struct pt_regs *regs)
{
const int field = 2 * sizeof(unsigned long);
int multi_match = regs->cp0_status & ST0_TS;

show_regs(regs);
dump_tlb_all();

if (multi_match) {
printk("Index : %0x\n", read_c0_index());
printk("Pagemask: %0x\n", read_c0_pagemask());
printk("EntryHi : %0*lx\n", field, read_c0_entryhi());
printk("EntryLo0: %0*lx\n", field, read_c0_entrylo0());
printk("EntryLo1: %0*lx\n", field, read_c0_entrylo1());
printk("\n");
dump_tlb_all();
}

show_code((unsigned int *) regs->cp0_epc);

/*
* Some chips may have other causes of machine check (e.g. SB1
* graduation timer)
*/
panic("Caught Machine Check exception - %scaused by multiple "
"matching entries in the TLB.",
(regs->cp0_status & ST0_TS) ? "" : "not ");
(multi_match) ? "" : "not ");
}

asmlinkage void do_mt(struct pt_regs *regs)
Expand Down

0 comments on commit cac4bcb

Please sign in to comment.