x86/mce: Add errata workaround for Skylake SKX37
authorDave Jones <davej@codemonkey.org.uk>
Fri, 29 Oct 2021 20:57:59 +0000 (16:57 -0400)
committerDave Hansen <dave.hansen@linux.intel.com>
Fri, 12 Nov 2021 19:43:35 +0000 (11:43 -0800)
Errata SKX37 is word-for-word identical to the other errata listed in
this workaround.   I happened to notice this after investigating a CMCI
storm on a Skylake host.  While I can't confirm this was the root cause,
spurious corrected errors does sound like a likely suspect.

Fixes: 2976908e4198 ("x86/mce: Do not log spurious corrected mce errors")
Signed-off-by: Dave Jones <davej@codemonkey.org.uk>
Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Reviewed-by: Tony Luck <tony.luck@intel.com>
Cc: <stable@vger.kernel.org>
Link: https://lkml.kernel.org/r/20211029205759.GA7385@codemonkey.org.uk
arch/x86/kernel/cpu/mce/intel.c

index acfd5d9f93c68db4c9334274e51b270d543e5979..bb9a46a804bf214afc571e4bcd426035ffcdd546 100644 (file)
@@ -547,12 +547,13 @@ bool intel_filter_mce(struct mce *m)
 {
        struct cpuinfo_x86 *c = &boot_cpu_data;
 
-       /* MCE errata HSD131, HSM142, HSW131, BDM48, and HSM142 */
+       /* MCE errata HSD131, HSM142, HSW131, BDM48, HSM142 and SKX37 */
        if ((c->x86 == 6) &&
            ((c->x86_model == INTEL_FAM6_HASWELL) ||
             (c->x86_model == INTEL_FAM6_HASWELL_L) ||
             (c->x86_model == INTEL_FAM6_BROADWELL) ||
-            (c->x86_model == INTEL_FAM6_HASWELL_G)) &&
+            (c->x86_model == INTEL_FAM6_HASWELL_G) ||
+            (c->x86_model == INTEL_FAM6_SKYLAKE_X)) &&
            (m->bank == 0) &&
            ((m->status & 0xa0000000ffffffff) == 0x80000000000f0005))
                return true;