diff mbox

[1/2] powerpc/book3s: Display more info for MCE error console log.

Message ID 149070869902.18309.14355142133222424050.stgit@jupiter.in.ibm.com (mailing list archive)
State Accepted
Headers show

Commit Message

Mahesh J Salgaonkar March 28, 2017, 1:45 p.m. UTC
From: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>

For D-side errors we print data load/store address as 'Effective address'
that caused MC. In addition to print NIP, print kernel function name as well.

After this patch the MCE console log would look like:

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

Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
---
 arch/powerpc/kernel/mce.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Michael Ellerman April 6, 2017, 1:06 p.m. UTC | #1
On Tue, 2017-03-28 at 13:45:04 UTC, Mahesh Salgaonkar wrote:
> From: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
> 
> For D-side errors we print data load/store address as 'Effective address'
> that caused MC. In addition to print NIP, print kernel function name as well.
> 
> After this patch the MCE console log would look like:
> 
> [  291.444281] Severe Machine check interrupt [Recovered]
> [  291.444477]   NIP [d00000001bc70194]: init_module+0x194/0x2b0 [bork_kernel]
> [  291.444707]   Initiator: CPU
> [  291.444761]   Error type: SLB [Parity]
> [  291.444793]     Effective address: d000000026de0000
> 
> Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>

Series applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/5b1d6fc2d4d927852214f2a7e2a8eb

cheers
diff mbox

Patch

diff --git a/arch/powerpc/kernel/mce.c b/arch/powerpc/kernel/mce.c
index 399aeaf..e82d4ee 100644
--- a/arch/powerpc/kernel/mce.c
+++ b/arch/powerpc/kernel/mce.c
@@ -311,7 +311,8 @@  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) {