mirror of https://gitee.com/openkylin/linux.git
[MIPS] Print more information if we're struck by a machine check exception.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
722ace9dfb
commit
cac4bcbce0
|
@ -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);
|
||||
|
||||
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)
|
||||
|
|
Loading…
Reference in New Issue