Received: by 10.223.185.116 with SMTP id b49csp1115320wrg; Sat, 3 Mar 2018 16:02:05 -0800 (PST) X-Google-Smtp-Source: AG47ELtybsyBcGQtOe1PYtxJzR/VdLu0gIQMylFARdNmcoTh+BsAiUraV10D3z6OmO21Jw/aIZ1R X-Received: by 2002:a17:902:b704:: with SMTP id d4-v6mr9186522pls.406.1520121725698; Sat, 03 Mar 2018 16:02:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520121725; cv=none; d=google.com; s=arc-20160816; b=z7V8oUbjJN527FVxJvKC7Jq9KS5cgOcTnmiRqB2Tdqc64GqNb7nLhCdGts9223KIcW pngwg3iG6ZEQzRYLX746BfpJvPlAbO//awyZ8ktLOiT3u+ExC9eKfIJo2ieA7IGECa41 Ohou5Z8kcaa9UJU2w0VgfWG+CaaCo4Ne+AzHUt84EssCI7SCRxZQHHoSSAubsZZ71nUI C8FQfaiNcQbHR02q0iKMYsw6d4M6JZyb2OJ9rSmI4LSPpgs0q6V5KaAxvlYs1xm+ryEc fmK6H+XuFboEh7ZSCmSlZ+gxi51M22IeMEFIzjqdkzgX/X+/hi/avOrd6c7TAlfufkO6 IeTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :spamdiagnosticmetadata:spamdiagnosticoutput:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=waKcfPncJnv3FCnZow+CNO7hOlS0LINng4IyFMkvGpc=; b=JSUPCvnMhWOScL9bXnTh3O+pmCkfban7WaTT/873u1Ue58WeqVFn8J0PXqh0w1XQG5 QMH4F+flQI5jIGFhQU5JT1UqBMuZsX8yMn5dhmsrUaaX4Y+lqx4umZC+yOsjkRrE+3RM sMyIfTEnwi1nRAsAwRPSsuJltUzu6M0kk3AC7dviycbmR6TKUZjdLh4Wox8OqP2V/UIT SxdezZrOvI2JODRxU2YhDr+88a0w6G0kjg+I2tMZ4VbVz2M+3w2ZUDC40Hxqcxp5I3g1 wPhEfqTdfY8df9+iIzQ3/mtiguFmLLg8561+COROYE5VWu9Z2vItI4bQTLwFPYe2WcHj TFwQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@microsoft.com header.s=selector1 header.b=nEwHjwY3; 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=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o128si7472439pfo.68.2018.03.03.16.01.51; Sat, 03 Mar 2018 16:02:05 -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=@microsoft.com header.s=selector1 header.b=nEwHjwY3; 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=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933839AbeCDAAr (ORCPT + 99 others); Sat, 3 Mar 2018 19:00:47 -0500 Received: from mail-co1nam03on0109.outbound.protection.outlook.com ([104.47.40.109]:6764 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S933773AbeCCWcG (ORCPT ); Sat, 3 Mar 2018 17:32:06 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=waKcfPncJnv3FCnZow+CNO7hOlS0LINng4IyFMkvGpc=; b=nEwHjwY3xfcDnUIVldlaUIBqKJ6OP+S2rSiIqLinImkJMTowWKAfg3YBRDHfl6lnj13YjuUbhbL9NVPNfB4fC+ZeTgX1s0JxRUgkMS0R7BB1ASm9D1WMST6+aWKE53Z5dCRIlHBXTJ71lm8gA2fC5yWtUcX+D2AsMaIReesrrok= Received: from MW2PR2101MB1034.namprd21.prod.outlook.com (52.132.149.10) by MW2PR2101MB1083.namprd21.prod.outlook.com (52.132.149.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.588.1; Sat, 3 Mar 2018 22:32:02 +0000 Received: from MW2PR2101MB1034.namprd21.prod.outlook.com ([fe80::1d56:338f:e2b:cec0]) by MW2PR2101MB1034.namprd21.prod.outlook.com ([fe80::1d56:338f:e2b:cec0%3]) with mapi id 15.20.0567.006; Sat, 3 Mar 2018 22:32:02 +0000 From: Sasha Levin To: "linux-kernel@vger.kernel.org" , "stable@vger.kernel.org" CC: Yazen Ghannam , Tony Luck , linux-edac , x86-ml , Borislav Petkov , Thomas Gleixner , Sasha Levin Subject: [PATCH AUTOSEL for 4.9 041/219] x86/mce: Init some CPU features early Thread-Topic: [PATCH AUTOSEL for 4.9 041/219] x86/mce: Init some CPU features early Thread-Index: AQHTsz7u9WLtG+6wjUSePl5zHWtMqQ== Date: Sat, 3 Mar 2018 22:28:19 +0000 Message-ID: <20180303222716.26640-41-alexander.levin@microsoft.com> References: <20180303222716.26640-1-alexander.levin@microsoft.com> In-Reply-To: <20180303222716.26640-1-alexander.levin@microsoft.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [52.168.54.252] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;MW2PR2101MB1083;7:xeqXUFfvBZ+G7aB3tkQFlvu6FqUf/REZUBG0r//N/wum4C8zjGwYJhY2mj0ms4ixDpgXhjqGUIXcXqHQm/NuniMmLwcOGp0MOC/7kzXlUuoGa9ffF7VcfYtQq0f7LTGgvGXdYYB7pD0Ja3Wg03psUhhCTovWwOh/0FL0OlT72kfSjVbjLEGztwvih05PxA3f1a1gQvrdC+9a8CijGcVITYRttDCo1+ZEbNsS+rhugqY+vl89jRHQRKTcXTHd8ef4 x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 47092bb4-dee3-4984-4ee4-08d5815695f1 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(3008032)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603307)(7193020);SRVR:MW2PR2101MB1083; x-ms-traffictypediagnostic: MW2PR2101MB1083: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alexander.Levin@microsoft.com; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(28532068793085)(89211679590171)(9452136761055)(767451399110)(42068640409301)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(61425038)(6040501)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3231220)(944501244)(52105095)(3002001)(6055026)(61426038)(61427038)(6041288)(20161123562045)(20161123558120)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011);SRVR:MW2PR2101MB1083;BCL:0;PCL:0;RULEID:;SRVR:MW2PR2101MB1083; x-forefront-prvs: 0600F93FE1 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(376002)(39860400002)(39380400002)(396003)(346002)(366004)(189003)(199004)(106356001)(53936002)(316002)(305945005)(7736002)(3280700002)(107886003)(2906002)(8666007)(6512007)(6436002)(97736004)(3660700001)(6306002)(6486002)(99286004)(81166006)(8936002)(81156014)(76176011)(8676002)(25786009)(2950100002)(6506007)(4326008)(110136005)(5250100002)(54906003)(36756003)(575784001)(105586002)(6116002)(6666003)(22452003)(86612001)(10090500001)(186003)(68736007)(26005)(2900100001)(86362001)(66066001)(102836004)(3846002)(14454004)(478600001)(72206003)(10290500003)(5660300001)(1076002)(966005)(2501003)(22906009)(217873001)(309714004);DIR:OUT;SFP:1102;SCL:1;SRVR:MW2PR2101MB1083;H:MW2PR2101MB1034.namprd21.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: wCr4m5GeVKwYPm/MUogIqcioPZtUIcGsSzxxG+FfmL6PB9mZExNGQ79Ry+L5HR0+z49PZe99JH5wKZhtoOXzd2cBvVaqWCiIM/dJv+p/rv3963D0Dlzxb8xeSx56fPyzsDTdUG7wWxyegzNWbZ3kBB1NlA6PP46tJzs6bZ/SZpo= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: 47092bb4-dee3-4984-4ee4-08d5815695f1 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Mar 2018 22:28:19.6037 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR2101MB1083 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Yazen Ghannam [ Upstream commit 5204bf17031b69fa5faa4dc80a9dc1e2446d74f9 ] When the MCA banks in __mcheck_cpu_init_generic() are polled for leftover errors logged during boot or from the previous boot, its required to have CPU features detected sufficiently so that the reading out and handling of those early errors is done correctly. If those features are not available, the decoding may miss some information and get incomplete errors logged. For example, on SMCA systems the MCA_IPID and MCA_SYND registers are not logged and MCA_ADDR is not masked appropriately. To cure that, do a subset of the basic feature detection early while the rest happens in its usual place in __mcheck_cpu_init_vendor(). Signed-off-by: Yazen Ghannam Cc: Tony Luck Cc: linux-edac Cc: x86-ml Link: http://lkml.kernel.org/r/1489599055-20756-1-git-send-email-Yazen.Ghan= nam@amd.com [ Massage commit message and simplify. ] Signed-off-by: Borislav Petkov Signed-off-by: Thomas Gleixner Signed-off-by: Sasha Levin --- arch/x86/kernel/cpu/mcheck/mce.c | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/= mce.c index b0cc7bd26ab5..dc39f5ace024 100644 --- a/arch/x86/kernel/cpu/mcheck/mce.c +++ b/arch/x86/kernel/cpu/mcheck/mce.c @@ -1692,30 +1692,35 @@ static int __mcheck_cpu_ancient_init(struct cpuinfo= _x86 *c) return 0; } =20 -static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c) +/* + * Init basic CPU features needed for early decoding of MCEs. + */ +static void __mcheck_cpu_init_early(struct cpuinfo_x86 *c) { - switch (c->x86_vendor) { - case X86_VENDOR_INTEL: - mce_intel_feature_init(c); - mce_adjust_timer =3D cmci_intel_adjust_timer; - break; - - case X86_VENDOR_AMD: { + if (c->x86_vendor =3D=3D X86_VENDOR_AMD) { mce_flags.overflow_recov =3D !!cpu_has(c, X86_FEATURE_OVERFLOW_RECOV); mce_flags.succor =3D !!cpu_has(c, X86_FEATURE_SUCCOR); mce_flags.smca =3D !!cpu_has(c, X86_FEATURE_SMCA); =20 - /* - * Install proper ops for Scalable MCA enabled processors - */ if (mce_flags.smca) { msr_ops.ctl =3D smca_ctl_reg; msr_ops.status =3D smca_status_reg; msr_ops.addr =3D smca_addr_reg; msr_ops.misc =3D smca_misc_reg; } - mce_amd_feature_init(c); + } +} =20 +static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c) +{ + switch (c->x86_vendor) { + case X86_VENDOR_INTEL: + mce_intel_feature_init(c); + mce_adjust_timer =3D cmci_intel_adjust_timer; + break; + + case X86_VENDOR_AMD: { + mce_amd_feature_init(c); break; } =20 @@ -1801,6 +1806,7 @@ void mcheck_cpu_init(struct cpuinfo_x86 *c) =20 machine_check_vector =3D do_machine_check; =20 + __mcheck_cpu_init_early(c); __mcheck_cpu_init_generic(); __mcheck_cpu_init_vendor(c); __mcheck_cpu_init_clear_banks(); --=20 2.14.1