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 399aeaf..b960f00 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) {