]> err.no Git - linux-2.6/commitdiff
[SPARC64]: Log faulting vaddr when bogus kernel PC detected.
authorDavid S. Miller <davem@sunset.davemloft.net>
Tue, 14 Feb 2006 02:07:45 +0000 (18:07 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Mon, 20 Mar 2006 09:12:38 +0000 (01:12 -0800)
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc64/mm/fault.c

index 439a53c1e5607c2c95693935d790454cec074c9a..b97bd054aad36bd26465bdec40410cd4ce684715 100644 (file)
@@ -91,12 +91,13 @@ static void __kprobes unhandled_fault(unsigned long address,
        die_if_kernel("Oops", regs);
 }
 
-static void bad_kernel_pc(struct pt_regs *regs)
+static void bad_kernel_pc(struct pt_regs *regs, unsigned long vaddr)
 {
        unsigned long *ksp;
 
        printk(KERN_CRIT "OOPS: Bogus kernel PC [%016lx] in fault handler\n",
               regs->tpc);
+       printk(KERN_CRIT "OOPS: Fault was to vaddr[%lx]\n", vaddr);
        __asm__("mov %%sp, %0" : "=r" (ksp));
        show_stack(current, ksp);
        unhandled_fault(regs->tpc, current, regs);
@@ -280,7 +281,7 @@ asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
                    (tpc >= MODULES_VADDR && tpc < MODULES_END)) {
                        /* Valid, no problems... */
                } else {
-                       bad_kernel_pc(regs);
+                       bad_kernel_pc(regs, address);
                        return;
                }
        }