powerpc/book3s: Print the kernel function name in machine check
authorMahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
Tue, 28 Mar 2017 13:45:04 +0000 (19:15 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 3 Apr 2017 06:11:36 +0000 (16:11 +1000)
For D-side errors we print the load/store address that caused the
machine check as 'Effective address'. But the instruction that may have
caused the machine check can also be helpful, so in addition to printing
the NIP, also print the kernel function name as well.

After this patch the MCE console log would look like:

  Severe Machine check interrupt [Recovered]
    NIP [d00000001bc70194]: init_module+0x194/0x2b0 [bork_kernel]
    Initiator: CPU
    Error type: SLB [Parity]
      Effective address: d000000026de0000

Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/kernel/mce.c

index 399aeafb7dd4395ee5f599c8c3de134809017aae..b960f00f490878683745202245d82190babae9a8 100644 (file)
@@ -311,7 +311,7 @@ void machine_check_print_event_info(struct machine_check_event *evt)
        printk("%s%s Machine check interrupt [%s]\n", level, sevstr,
               evt->disposition == MCE_DISPOSITION_RECOVERED ?
               "Recovered" : "Not recovered");
-       printk("%s  NIP: %016llx\n", level, evt->srr0);
+       printk("%s  NIP [%016llx]: %pS\n", level, evt->srr0, (void *)evt->srr0);
        printk("%s  Initiator: %s\n", level,
               evt->initiator == MCE_INITIATOR_CPU ? "CPU" : "Unknown");
        switch (evt->error_type) {