Patch "x86/mce: Fix MCE severity messages" has been added to the 4.0-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
x86/mce: Fix MCE severity messages
to the 4.0-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
x86-mce-fix-mce-severity-messages.patch
and it can be found in the queue-4.0 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
17fea54bf0ab34fa09a06bbde2f58ed7bbdf9299Mon Sep 17 00:00:00 2001
From: Borislav Petkov <[email protected]>
Date: Mon, 18 May 2015 10:07:17 +0200
Subject: x86/mce: Fix MCE severity messages
From: Borislav Petkov <[email protected]>
commit 17fea54bf0ab34fa09a06bbde2f58ed7bbdf9299 upstream.
Derek noticed that a critical MCE gets reported with the wrong error type description:
[Hardware Error]: CPU 34: Machine Check Exception: 5 Bank 9: f200003f000100b0 [Hardware Error]: RIP !INEXACT! 10:<ffffffff812e14c1> {intel_idle+0xb1/0x170} [Hardware Error]: TSC 49587b8e321cb
[Hardware Error]: PROCESSOR 0:306e4 TIME 1431561296 SOCKET 1 APIC 29 [Hardware Error]: Some CPUs didn't answer in synchronization [Hardware Error]: Machine check: Invalid
^^^^^^^
The last line with 'Invalid' should have printed the high level MCE error type description we get from mce_severity, i.e. something like:
[Hardware Error]: Machine check: Action required: data load error in a user process
this happens due to the fact that mce_no_way_out() iterates over all MCA banks and possibly overwrites the @msg argument which is used in the panic printing later.
Change behavior to take the message of only and the (last) critical MCE it detects.
--- arch/x86/kernel/cpu/mcheck/mce.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
arch/x86/kernel/cpu/mcheck/mce.c +5 -2
@@ -705,6 +705,7 @@ static int mce_no_way_out(struct mce *m, struct pt_regs *regs) {int i, ret =0 ; +char *tmp;for (i =0 ; i < mca_cfg.banks; i++) { m->status =mce_rdmsrl (MSR_IA32_MCx_STATUS (i));
@@ -713,9 +714,11 @@ static int mce_no_way_out(struct mce *m,if (quirk_no_way_out)quirk_no_way_out (i, m, regs); } -if (mce_severity (m, mca_cfg.tolerant, msg, true) >= -MCE_PANIC_SEVERITY ) + +if (mce_severity (m, mca_cfg.tolerant, &tmp, true) >=MCE_PANIC_SEVERITY ) { + *msg = tmp; ret =1 ; + } }return ret; }
Patches currently in stable-queue which might be from [email protected] are
queue-4.0/x86-mce-fix-mce-severity-messages.patch