|
@@ -389,5 +389,22 @@ void bad_page_fault(struct pt_regs *regs, unsigned long address, int sig)
|
|
|
}
|
|
|
|
|
|
/* kernel has accessed a bad area */
|
|
|
+
|
|
|
+ printk(KERN_ALERT "Unable to handle kernel paging request for ");
|
|
|
+ switch (regs->trap) {
|
|
|
+ case 0x300:
|
|
|
+ case 0x380:
|
|
|
+ printk("data at address 0x%08lx\n", regs->dar);
|
|
|
+ break;
|
|
|
+ case 0x400:
|
|
|
+ case 0x480:
|
|
|
+ printk("instruction fetch\n");
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ printk("unknown fault\n");
|
|
|
+ }
|
|
|
+ printk(KERN_ALERT "Faulting instruction address: 0x%08lx\n",
|
|
|
+ regs->nip);
|
|
|
+
|
|
|
die("Kernel access of bad area", regs, sig);
|
|
|
}
|