From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752546AbdCORbH (ORCPT ); Wed, 15 Mar 2017 13:31:07 -0400 Received: from mail-sn1nam02on0050.outbound.protection.outlook.com ([104.47.36.50]:27240 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750848AbdCORbE (ORCPT ); Wed, 15 Mar 2017 13:31:04 -0400 Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=amd.com; From: Yazen Ghannam To: CC: Yazen Ghannam , Tony Luck , Borislav Petkov , , Subject: [PATCH] x86/mce: Do feature check earlier Date: Wed, 15 Mar 2017 12:30:55 -0500 Message-ID: <1489599055-20756-1-git-send-email-Yazen.Ghannam@amd.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: DM5PR09CA0031.namprd09.prod.outlook.com (10.172.184.145) To BN6PR1201MB0131.namprd12.prod.outlook.com (10.174.114.144) X-MS-Office365-Filtering-Correlation-Id: f6e18fa6-7244-47aa-c6af-08d46bc90d8b X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(48565401081);SRVR:BN6PR1201MB0131; X-Microsoft-Exchange-Diagnostics: 1;BN6PR1201MB0131;3:5iuiOZT40EB6aZFEU2wStmiIbSUV7N773d1nT101L+IJJEWhH+0R6RmptpAtUJHzi0XjcNRXaEO9lWnNeDxAGtlqZaPLDUFhXk4vVIrweGq4R/aUAzRMYOtcd7ipiCsjx81/qI1J4nq1JBTts0jNPyuPYcIWOCi/zzz0VEy1p5MZSITJYBMGFnhQ6NVz/9Bthp95qZtPpbBdxsR+5jG78VHAZDGCt9LYJHaZEZctppU+J36zzXF6PpDTMtCcgEgKl31/fUgq96lGhX6TYD9mKId0gML5V9Flfvix+FsVjqo=;25:DhIERKd0OREWwJChR+zecLQ9gFK60u7v6L3lOTNTr6VrODFeDjHx7olIXjEJSJbFUfriiirgWBK5p4Q+u21SaIHCTLHG6GHnMvYZ66ZZQJR6r7kYkmsM8izzRWNIXZRv2+Vt3WH7bMEkjZNyXE3ME6MPyAyhlhq/1BUZlrLil/pY+GmUSc6SDW4aDwNcExUVSoMsMrZiVoM6JGeTzrZ1vOgXc5dpVR3dvybK+Fz0Khh2L4uhWQ+EH0fBMV7zeM0G4iETDx30B2yHX5pQ/R/+xy2sOFJYZeZkU+RNQGzJpoSSUSvyisiVwbaVmSD2AUxvypeVzGelt6qqutek/1xszkyKe8tpuYSUNR6iz5YQsfeuOJNomPQIkFIdD04/zw7epiNdy0+iifhMoPvfpMC2+6ko67i0ruFgvIMwtJtqAzAG8gFATENUwU+t/QzXbUTr8DT1CuIZA8RDeR2Y4Loqpw== X-Microsoft-Exchange-Diagnostics: 1;BN6PR1201MB0131;31:uuD0uuPKchUt02dPXw1c3TRehsj5IQL3wsQgBc2i2MRk+8jtzZXg8YrNkHaloghYVey5oX6dWw7sNKN7Nr5Vu5Cq67m8mZAYHok0l+typFM3CXTUEDn81IcEqwYK9gphTjjfIKCJmgWPRh/dZIEJIwgbCIYFWUfu/I+7mcKlc5Cf+MaCJyYts1keN+GTaCilprY5PULCI5TqnyYyUObA1I/pKbj+jMuTcgihzMjNttAdWCnamCJFB/ZHM+U05yAq;20:CdXpBPuukUlKapDiwtD1otCK81jGhuuwGmseOepsN1Xp0PzX08wo+HQV7AzJDlIvKg/SQae3kma2ARlf4XYXr4s1pAJhd2v13itlHGWGuYo7oeD8HgJ7dPH9ucA1RdRX+HlKUen0IKblczj0pE8J7a/aw9ZiuLZgkDw3XHUwXj4sxvMJqOSrdio1hSyksfMblsBCWO67ioqSFJBOXDMxsG/67AD0k65g81QSPzk/ENocKp/hEVXk1lccS9IzF/2+VfYXaIFOy+12SkJSPhiJGMRS0nJ2M9PkHjLF/pOdzlL0Lbfq9d1Gy8Wu1GjZTFeTzVVbOl5yey7Ljaq58hceDwVs1JeUdcnx3yivfgBWzONYTUdFByLUV4qHRRBEscQSwprh8n+t+7+zJgSgo+2iT7buoWjIv2/rvnf1QkL6eiSFpepoKAHbTiDXLK1w/gWjMpwwZijD0xLCAZrI1UnfJkuvb1xMsvVM3eGxIkbZ3hVYkcFKWVnSDG9+hLXl8Nu1 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6041248)(20161123564025)(20161123558025)(20161123560025)(20161123562025)(20161123555025)(6072148);SRVR:BN6PR1201MB0131;BCL:0;PCL:0;RULEID:;SRVR:BN6PR1201MB0131; X-Microsoft-Exchange-Diagnostics: 1;BN6PR1201MB0131;4:t1m5+Cbn0qO1Zxj7aHEBWkrWSjOupiweMOj/ROSZhQhGmpMf8JpELigb3JgkYLpDfvNAQZMjL5UqG30opCF3RPM0PbilnuuhNeK72+96nFM2XCFLJo/+PMud9BMDYUSSOiuhsSVQtxZ3MuPKrzLJe6klprwsTUg2BiEDJbnuBfRl9834tpQRTRdeqEcPU1chZHoQxzRAeyK9kaKBOK6c51pqA3uIox8045E/Ju6xHUTe08MVHy8fic/bZGB2fQfMnTYN+Ifi2FgFZGc9qMamyJrf45HzbTMKpcUYIh5GqveLEH4DSXwJ/G+hgDTqIZctgT5xQUcIbinAwJj0jw2DVsiworpptwwGcR5KLE/LzqM1noUJr7lZs51b8gNbR/wvgMsuRbIL0pAhFHvAqtwPVcLdJQeVTlxzTP7B6BVJPjsUCNtYPUh1rz2pnzfjumUdJFcDBFZ/8HzpJILrUxnunQTXRB/+XD+zF5NYunaE3IiCAxA5JIRSNyOfbkvFKEVmw3bGfWgPJvoybbLkzK112uux6ZJCcv85Z4iZ0d1tsIjeZA3fnM9Ca5wDGg8ay1g1QTAVTpKi4nsF/isLICHze6d2px75ERm7PCk0SFK6MH/VcvunPu2St6wjlON2FSThKTC33Bdr1t/pMtifc61+/ao0YB+8pvON+khWDP0w7e8= X-Forefront-PRVS: 02475B2A01 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(39450400003)(39860400002)(39840400002)(39410400002)(39850400002)(86362001)(50986999)(305945005)(42186005)(110136004)(54906002)(2351001)(4326008)(189998001)(5003940100001)(25786008)(50466002)(38730400002)(5660300001)(36756003)(7736002)(53936002)(66066001)(3846002)(6486002)(48376002)(53416004)(6116002)(81166006)(47776003)(2906002)(6666003)(50226002)(8676002)(6916009)(309714004);DIR:OUT;SFP:1101;SCL:1;SRVR:BN6PR1201MB0131;H:yaz-diesel.amd.com;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN6PR1201MB0131;23:FMo8dlhLHqcXk/PnfuUFr6rK7X+PbeHsW8Uc29z?= =?us-ascii?Q?dT+QPXaBPXP3+LVygI7NjYOVefKzct6dBh2MTWitZ3bSU9SZZ7axrq0rzlyF?= =?us-ascii?Q?CeSRUt6SCl3GgGJyo6V96eogCQUjxx7rKj2mWp4fGrKBBE0jeHh4K9Idf/7p?= =?us-ascii?Q?EEamf0blwlXh6kyVd4cIVzySVLPhznlZqrXz1QraYiLJ153xsbuRh+RTNGPL?= =?us-ascii?Q?gbO4FcUDfC83iU/UpGy2ghltjwCHbVjYsCQwDCBk66nfpBHUr6bbng80nXwE?= =?us-ascii?Q?zkneOwlYy7wxyVb83tGxn9D/27UvNqx07kOmzh7qKSU8mxkXhzs8lLgCupgX?= =?us-ascii?Q?Dp4oW9w3pkNbxdjN9yYMug+nRZk+3QWF2ml6nmxk81SknsM/GWGXZWBp0re/?= =?us-ascii?Q?TGgYNEZK8dEAOLlzOIkGy9FiQluB9uj1Ibih/RI51qWCwB5HTckomNZ2aYps?= =?us-ascii?Q?qwQXs9pB5Y8ZouZX0N6GD3VLYnL7VGLjELxMe4L12DcdX5/DLEoxyaE6zmfd?= =?us-ascii?Q?+SA2mg4ac4z2V81POW9BcZu8MOwbEmgMkNyMLaLlMUd6ES94cKvWJnp9PYM6?= =?us-ascii?Q?LR75W6+9453593Ipw/9Huf20VgpDBwXCoptfdgxR0mnsSDSGohWXF1SlRS16?= =?us-ascii?Q?aPddA+QzfsAfseYI3x4A8rhF4R/q7crmDGrEBalkGoltqkFOLECTPC6wa2bY?= =?us-ascii?Q?sonxe+jmklsOK8uIJC9cRQX5xSZfIh4kZOsRIrYIeFddXKZO34ngB1V4fFVM?= =?us-ascii?Q?0/mZfjs/SLNvjxVRLuPCNFDUs+DJ5sUCt+T0JPXSrGKfOmYGx6/WKKmzSOLG?= =?us-ascii?Q?+tgSUW3LUbtnkYY0wdJDxvtXiB7Vpy7Q4jQvb0y/WnDd3thXDRK8p55fQ8Ei?= =?us-ascii?Q?DuQcvpgfes1SCh0jYMEn0lHeNHncPHH6I8WFMSIjwASmJ9MbBZ1Tf6drPBXF?= =?us-ascii?Q?nAWIAO/K71tceV/yLqSFPne2U1g/bXOqCM1WkivPCzCg5y7KgvEEuen2v3ZN?= =?us-ascii?Q?vJgg=3D?= X-Microsoft-Exchange-Diagnostics: 1;BN6PR1201MB0131;6:zczRO9rUxqgKKeoLfHi4CjsdiCZWfxD5aE+CKr8w9AtqP2Bni4D+eEKM9X0LoiKuGM/ivimXRJh7L9P1+GfO+M2p5Mv8Kj5xEBIvqd601N5n/75sZUm4hIRCRF/+CO9BViABwgpI08KGXBnkTDagbUfpEJmi4ws9WchzsmuiBoYTLl0S4n4zQg9/+tX/pXx3by+VbLLRk/+5mTBY5MYF/pvJa3hhjYoFAU+JxmSf7/YikH07UkeNDWaaOiTnEhOggWJbsji1Tiosu9ICrdp0BrmiaeuJq/zU2wtuA0YkUKrJY25eHGYF80qUGtebSznY/v3lHaJ1oFR8PAO6aMYo6IytRYf7WwvtoUv30mR6MK66v5B5fdCnog2gg/RQoljAbLl679y+M50VFQdDwms/ITye7f3Z5MHdUoob2SWaZPs=;5:0iqoOHe/crzUveuUnr5qLK4AAbnDxcsShPUmAbgjkoS92fLdxoSw7dV05Fdm4KotqW86mza/xwlt46Vb9PO2aQ85IVkgdCzvLVwfmTwM+DEqjhvX87tsOIR3S/KeHadkU2+ltXtxn9HwWLi4ZZH6sg==;24:i1jiALGqvwHg29U5vMHlhvJFwxieA7+hC2YnXr3GHRKl/KuVVXME75Bj9IqPOWL9AjiAMWEy6TMD2M6Kvn8Mo1nw9p3sXd8FuzLbsfeweyk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BN6PR1201MB0131;7:GPzKBKW/OOy1hDQnhwI+e9sliApktQeTtbBP3FvefM7ctBd7acsAZQtLCADryCDK5cFjUDm6pMFjwuAU3aNQe10gYLGH28mJoFHR7IOMkK8DKStstx2M5Qjb2fBcLLLEc9VfJTErKjCobvguivvPSmBwbTcQlJU89s3kjNdbU2/XeniLlou3Dm08A9gSyCRDgAlWYO/NmaxsuSJaom+gsQ+Y3xeJSqbmF3VzjOgvQ9FYHpcXZ0MKIaFvqnvb4c+PiV6URKrqCXoNr/Xc1tyJfdcAn13oy6MGxOtxcjFm/qrPsCgYSb1riUGGkPGHKA39DUcNLLTIkDEcl6vzirWong==;20:ue0W6t2vxoXV9MKP8UC5QGd/3qXDclO1u/W1atyFuY2bNhcCwb9RgxpZZpCLX60SXQQWEnLet7ucrP9rNG4h6TLWfTVarh2IS7XF1aS9dhAo9lu1AN1BUMTqUcGLUEKjw/Dv+AzqO9AE6tvZkK93LwWwSlfse5/hUX8aIHzXhQLtlzlX+ws2jkK1yt/7Wxfn+uxhEQeGhB4Zeq5ltBoHRPeaSxoVuZGCnnIBzuEwLx4PMTZLe/1alwRqP0JFFADa X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Mar 2017 17:31:02.0945 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR1201MB0131 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org We may miss some information when errors are logged during boot before the feature flags are set. For example, on SMCA systems we will not log the MCA_IPID and MCA_SYND registers and we won't mask MCA_ADDR appropriately. Move the feature checks before generic init. The rest of the vendor feature initialization will still happen after generic init. Signed-off-by: Yazen Ghannam --- arch/x86/kernel/cpu/mcheck/mce.c | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c index 177472a..d1f675b 100644 --- a/arch/x86/kernel/cpu/mcheck/mce.c +++ b/arch/x86/kernel/cpu/mcheck/mce.c @@ -1702,14 +1702,9 @@ static int __mcheck_cpu_ancient_init(struct cpuinfo_x86 *c) return 0; } -static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c) +static void __mcheck_cpu_init_feature_early(struct cpuinfo_x86 *c) { switch (c->x86_vendor) { - case X86_VENDOR_INTEL: - mce_intel_feature_init(c); - mce_adjust_timer = cmci_intel_adjust_timer; - break; - case X86_VENDOR_AMD: { mce_flags.overflow_recov = !!cpu_has(c, X86_FEATURE_OVERFLOW_RECOV); mce_flags.succor = !!cpu_has(c, X86_FEATURE_SUCCOR); @@ -1724,7 +1719,6 @@ static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c) msr_ops.addr = smca_addr_reg; msr_ops.misc = smca_misc_reg; } - mce_amd_feature_init(c); break; } @@ -1734,6 +1728,24 @@ static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c) } } +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 = cmci_intel_adjust_timer; + break; + + case X86_VENDOR_AMD: { + mce_amd_feature_init(c); + break; + } + + default: + break; + } +} + static void __mcheck_cpu_clear_vendor(struct cpuinfo_x86 *c) { switch (c->x86_vendor) { @@ -1812,6 +1824,7 @@ void mcheck_cpu_init(struct cpuinfo_x86 *c) machine_check_vector = do_machine_check; + __mcheck_cpu_init_feature_early(c); __mcheck_cpu_init_generic(); __mcheck_cpu_init_vendor(c); __mcheck_cpu_init_clear_banks(); -- 2.7.4