Currently if mce_end() fails no_way_out is set equal to worst. worst is the worst severirty that was found in the MCA banks associated to the current CPU; however at this point no_way_out could be already set by mca_start() by looking at all severities of all CPUs that entered the MCE handler. if mce_end() fails we first check if no_way_out is already set and if so we stick to it, otherwise we use the local worst value
Signed-off-by: Gabriele Paoloni <gabriele.paol...@intel.com> Reviewed-by: Tony Luck <tony.l...@intel.com> --- arch/x86/kernel/cpu/mce/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c index 4102b866e7c0..b990892c6766 100644 --- a/arch/x86/kernel/cpu/mce/core.c +++ b/arch/x86/kernel/cpu/mce/core.c @@ -1385,7 +1385,7 @@ noinstr void do_machine_check(struct pt_regs *regs) */ if (!lmce) { if (mce_end(order) < 0) - no_way_out = worst >= MCE_PANIC_SEVERITY; + no_way_out = no_way_out ? no_way_out : worst >= MCE_PANIC_SEVERITY; } else { /* * If there was a fatal machine check we should have -- 2.20.1 --------------------------------------------------------------------- INTEL CORPORATION ITALIA S.p.A. con unico socio Sede: Milanofiori Palazzo E 4 CAP 20094 Assago (MI) Capitale Sociale Euro 104.000,00 interamente versato Partita I.V.A. e Codice Fiscale 04236760155 Repertorio Economico Amministrativo n. 997124 Registro delle Imprese di Milano nr. 183983/5281/33 Soggetta ad attivita' di direzione e coordinamento di INTEL CORPORATION, USA This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.