Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c74dd88e authored by Mahesh Salgaonkar's avatar Mahesh Salgaonkar Committed by Michael Ellerman
Browse files

powerpc/book3s: Fix MCE console messages for unrecoverable MCE.



When machine check occurs with MSR(RI=0), it means MC interrupt is
unrecoverable and kernel goes down to panic path. But the console
message still shows it as recovered. This patch fixes the MCE console
messages.

Fixes: 36df96f8 ("powerpc/book3s: Decode and save machine check event.")
Signed-off-by: default avatarMahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 61e8a0d5
Loading
Loading
Loading
Loading
+2 −1
Original line number Original line Diff line number Diff line
@@ -92,7 +92,8 @@ void save_mce_event(struct pt_regs *regs, long handled,
	mce->in_use = 1;
	mce->in_use = 1;


	mce->initiator = MCE_INITIATOR_CPU;
	mce->initiator = MCE_INITIATOR_CPU;
	if (handled)
	/* Mark it recovered if we have handled it and MSR(RI=1). */
	if (handled && (regs->msr & MSR_RI))
		mce->disposition = MCE_DISPOSITION_RECOVERED;
		mce->disposition = MCE_DISPOSITION_RECOVERED;
	else
	else
		mce->disposition = MCE_DISPOSITION_NOT_RECOVERED;
		mce->disposition = MCE_DISPOSITION_NOT_RECOVERED;
+1 −0
Original line number Original line Diff line number Diff line
@@ -399,6 +399,7 @@ static int opal_recover_mce(struct pt_regs *regs,


	if (!(regs->msr & MSR_RI)) {
	if (!(regs->msr & MSR_RI)) {
		/* If MSR_RI isn't set, we cannot recover */
		/* If MSR_RI isn't set, we cannot recover */
		pr_err("Machine check interrupt unrecoverable: MSR(RI=0)\n");
		recovered = 0;
		recovered = 0;
	} else if (evt->disposition == MCE_DISPOSITION_RECOVERED) {
	} else if (evt->disposition == MCE_DISPOSITION_RECOVERED) {
		/* Platform corrected itself */
		/* Platform corrected itself */