Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp4743090ybv; Mon, 17 Feb 2020 05:08:40 -0800 (PST) X-Google-Smtp-Source: APXvYqzqtGAxC6MWk6qoD5ygMKU4acEiwaNbmndCzvoJAhuJbrFNg5Le+9Mf9GQyf3tI03R62PBu X-Received: by 2002:aca:2b0a:: with SMTP id i10mr10052831oik.137.1581944920300; Mon, 17 Feb 2020 05:08:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581944920; cv=none; d=google.com; s=arc-20160816; b=hntInaYhl0AN2cp5xgQ+GeubJyGv7GO3GJat697EBd5qmauKN3G6qAouXk4y+SIAoD uStEmQ3gozFyWXCHeZ2kgIvi4DR6paDyF4mKlvyyTmvKDG3go1h4OWrRc4I4P6FOYui8 RmnlUYrPgBakujagU1po8v9VQO7xJ8QCM6B3KuMA5xcD8QDh59C5D0rLgUY9RKMpUlCh UVFqR+Jqw4VTQnmR+kKNCFQFkpnrfNHQ5xEpcHq/w0LXFbYfpfbTSOWvfEXpUURzl4Hp cdqyoQ49cGu2sEXF/H9UCb5iWmqIE2uLzdNzzbEess1zdq9KJciR1sirNQ+KYcsigeef vTvA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=SpKPc5A4+hoXgRo+kcenP9f+2YW/SXepj7eKuZO/ZZc=; b=plMca9V61zmHc8/d0ALJ7Qpw+01hjSolOcpo9qTqD45Qx3OSEUWz0QIYqi6ollQy1J 4k2lJJhfQFJfwuO6ZSyR1rex9XqZ4g7mpu3+QA25cJVQD6Vb2+O3nngKIl5bBpCQo9fK yEYniEp5mjz1l8uyG3CK5GkGprph7S1RhXrvfAFftbdaWLK2sgUb7iP/nAfp0elOfFqQ zFk6wnaP2CdX54rqJNjNsZDoF6eiRLe8cceBunwW7zgR1xW0LPwlxdbQ/u3RQ9t1AhV+ gIdp4+RSlz3L/3kGhor7Y0SEkdT2fqEw9uuzxlWCar4qdXoZZeimkvJPWYe3X4iNf0fG XjIA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=GXEj8u0z; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t26si5989862oic.169.2020.02.17.05.08.26; Mon, 17 Feb 2020 05:08:40 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=GXEj8u0z; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727909AbgBQNHN (ORCPT + 99 others); Mon, 17 Feb 2020 08:07:13 -0500 Received: from us-smtp-delivery-1.mimecast.com ([207.211.31.120]:37211 "EHLO us-smtp-1.mimecast.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726801AbgBQNHM (ORCPT ); Mon, 17 Feb 2020 08:07:12 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1581944832; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=SpKPc5A4+hoXgRo+kcenP9f+2YW/SXepj7eKuZO/ZZc=; b=GXEj8u0z86dBzZ7OE/NKDyWbUc021Nv9JALpEW6QP5qnaSibgJYAgB1BmvXf2+MlvhLfzs 6QTk4cI+WK3qyrO9f/0rImHMtW3WYhhJFlJ8vMf+gx5xOA8NRHn2HEEn9FXXx/NCeMuUUl usZoaoJy8/wrPv3C7UdcGv3n+grHyRI= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-243-VqZ5xVpxMWy9vMr47c6tSg-1; Mon, 17 Feb 2020 08:07:08 -0500 X-MC-Unique: VqZ5xVpxMWy9vMr47c6tSg-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 53F8A800D50; Mon, 17 Feb 2020 13:07:06 +0000 (UTC) Received: from prarit.bos.redhat.com (prarit-guest.7a2m.lab.eng.bos.redhat.com [10.16.222.26]) by smtp.corp.redhat.com (Postfix) with ESMTP id BFE882CC39; Mon, 17 Feb 2020 13:07:03 +0000 (UTC) From: Prarit Bhargava To: linux-kernel@vger.kernel.org Cc: Prarit Bhargava , Alexander Krupp , Tony Luck , Borislav Petkov , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , x86@kernel.org, linux-edac@vger.kernel.org Subject: [PATCH v2] x86/mce: Do not log spurious corrected mce errors Date: Mon, 17 Feb 2020 08:06:59 -0500 Message-Id: <20200217130659.15895-1-prarit@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Content-Transfer-Encoding: quoted-printable Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org A user has reported that they are seeing spurious corrected errors on their hardware. Intel Errata HSD131, HSM142, HSW131, and BDM48 report that "spurious corrected errors may be logged in the IA32_MC0_STATUS register with the valid field (bit 63) set, the uncorrected error field (bit 61) not set, a Model Specific Error Code (bits [31:16]) of 0x000F, and an MCA Error Code (bits [15:0]) of 0x0005." Block these spurious errors from the console and logs. Links to Intel Specification updates: HSD131: https://www.intel.com/content/www/us/en/products/docs/processors/= core/4th-gen-core-family-desktop-specification-update.html HSM142: https://www.intel.com/content/www/us/en/products/docs/processors/= core/4th-gen-core-family-mobile-specification-update.html HSW131: https://www.intel.com/content/www/us/en/processors/xeon/xeon-e3-1= 200v3-spec-update.html BDM48: https://www.intel.com/content/www/us/en/products/docs/processors/c= ore/5th-gen-core-family-spec-update.html Signed-off-by: Prarit Bhargava Co-developed-by: Alexander Krupp Cc: Tony Luck Cc: Borislav Petkov Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: x86@kernel.org Cc: linux-edac@vger.kernel.org --- arch/x86/kernel/cpu/mce/core.c | 2 ++ arch/x86/kernel/cpu/mce/intel.c | 17 +++++++++++++++++ arch/x86/kernel/cpu/mce/internal.h | 1 + 3 files changed, 20 insertions(+) diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/cor= e.c index 2c4f949611e4..fe3983d551cc 100644 --- a/arch/x86/kernel/cpu/mce/core.c +++ b/arch/x86/kernel/cpu/mce/core.c @@ -1877,6 +1877,8 @@ bool filter_mce(struct mce *m) { if (boot_cpu_data.x86_vendor =3D=3D X86_VENDOR_AMD) return amd_filter_mce(m); + if (boot_cpu_data.x86_vendor =3D=3D X86_VENDOR_INTEL) + return intel_filter_mce(m); =20 return false; } diff --git a/arch/x86/kernel/cpu/mce/intel.c b/arch/x86/kernel/cpu/mce/in= tel.c index 5627b1091b85..989148e6746c 100644 --- a/arch/x86/kernel/cpu/mce/intel.c +++ b/arch/x86/kernel/cpu/mce/intel.c @@ -520,3 +520,20 @@ void mce_intel_feature_clear(struct cpuinfo_x86 *c) { intel_clear_lmce(); } + +bool intel_filter_mce(struct mce *m) +{ + struct cpuinfo_x86 *c =3D &boot_cpu_data; + + /* MCE errata HSD131, HSM142, HSW131, BDM48, and HSM142 */ + if ((c->x86 =3D=3D 6) && + ((c->x86_model =3D=3D INTEL_FAM6_HASWELL) || + (c->x86_model =3D=3D INTEL_FAM6_HASWELL_L) || + (c->x86_model =3D=3D INTEL_FAM6_BROADWELL) || + (c->x86_model =3D=3D INTEL_FAM6_HASWELL_G)) && + (m->bank =3D=3D 0) && + ((m->status & 0xa0000000ffffffff) =3D=3D 0x80000000000f0005)) + return true; + + return false; +} diff --git a/arch/x86/kernel/cpu/mce/internal.h b/arch/x86/kernel/cpu/mce= /internal.h index b785c0d0b590..821faba5b05d 100644 --- a/arch/x86/kernel/cpu/mce/internal.h +++ b/arch/x86/kernel/cpu/mce/internal.h @@ -175,5 +175,6 @@ extern bool amd_filter_mce(struct mce *m); #else static inline bool amd_filter_mce(struct mce *m) { return false; }; #endif +extern bool intel_filter_mce(struct mce *m); =20 #endif /* __X86_MCE_INTERNAL_H__ */ --=20 2.21.1