From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [4.4,32/43] x86/cpu: Add detection of AMD RAS Capabilities From: Greg Kroah-Hartman Message-Id: <20180716073515.436640999@linuxfoundation.org> Date: Mon, 16 Jul 2018 09:36:37 +0200 To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Yazen Ghannam , Borislav Petkov , Andy Lutomirski , Borislav Petkov , Brian Gerst , Denys Vlasenko , "H. Peter Anvin" , Linus Torvalds , Peter Zijlstra , Thomas Gleixner , Tony Luck , linux-edac , Ingo Molnar , "Srivatsa S. Bhat" , "Matt Helsley (VMware)" , Alexey Makhalov , Bo Gan List-ID: NC40LXN0YWJsZSByZXZpZXcgcGF0Y2guICBJZiBhbnlvbmUgaGFzIGFueSBvYmplY3Rpb25zLCBw bGVhc2UgbGV0IG1lIGtub3cuCgotLS0tLS0tLS0tLS0tLS0tLS0KCkZyb206IFlhemVuIEdoYW5u YW0gPFlhemVuLkdoYW5uYW1AYW1kLmNvbT4KCmNvbW1pdCA3MWZhYWQ0MzA2MGQzZDIwNDA1ODM2 MzVmYmY3ZDFiZGIzZDA0MTE4IHVwc3RyZWFtCgpBZGQgYSBuZXcgQ1BVSUQgbGVhZiB0byBob2xk IHRoZSBjb250ZW50cyBvZiBDUFVJRCAweDgwMDAwMDA3X0VCWCAoUmFzQ2FwKS4KCkRlZmluZSBi aXRzIHRoYXQgYXJlIGN1cnJlbnRseSBpbiB1c2U6CgogQml0IDA6IE1jYU92ZXJmbG93UmVjb3YK IEJpdCAxOiBTVUNDT1IKIEJpdCAzOiBTY2FsYWJsZU1jYQoKU2lnbmVkLW9mZi1ieTogWWF6ZW4g R2hhbm5hbSA8WWF6ZW4uR2hhbm5hbUBhbWQuY29tPgpbIFNob3J0ZW4gY29tbWVudC4gXQpTaWdu ZWQtb2ZmLWJ5OiBCb3Jpc2xhdiBQZXRrb3YgPGJwQHN1c2UuZGU+CkNjOiBBbmR5IEx1dG9taXJz a2kgPGx1dG9AYW1hY2FwaXRhbC5uZXQ+CkNjOiBCb3Jpc2xhdiBQZXRrb3YgPGJwQGFsaWVuOC5k ZT4KQ2M6IEJyaWFuIEdlcnN0IDxicmdlcnN0QGdtYWlsLmNvbT4KQ2M6IERlbnlzIFZsYXNlbmtv IDxkdmxhc2Vua0ByZWRoYXQuY29tPgpDYzogSC4gUGV0ZXIgQW52aW4gPGhwYUB6eXRvci5jb20+ CkNjOiBMaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+CkNjOiBQ ZXRlciBaaWpsc3RyYSA8cGV0ZXJ6QGluZnJhZGVhZC5vcmc+CkNjOiBUaG9tYXMgR2xlaXhuZXIg PHRnbHhAbGludXRyb25peC5kZT4KQ2M6IFRvbnkgTHVjayA8dG9ueS5sdWNrQGludGVsLmNvbT4K Q2M6IGxpbnV4LWVkYWMgPGxpbnV4LWVkYWNAdmdlci5rZXJuZWwub3JnPgpMaW5rOiBodHRwOi8v bGttbC5rZXJuZWwub3JnL3IvMTQ2Mjk3MTUwOS0zODU2LTUtZ2l0LXNlbmQtZW1haWwtYnBAYWxp ZW44LmRlClNpZ25lZC1vZmYtYnk6IEluZ28gTW9sbmFyIDxtaW5nb0BrZXJuZWwub3JnPgpTaWdu ZWQtb2ZmLWJ5OiBTcml2YXRzYSBTLiBCaGF0IDxzcml2YXRzYUBjc2FpbC5taXQuZWR1PgpSZXZp ZXdlZC1ieTogTWF0dCBIZWxzbGV5IChWTXdhcmUpIDxtYXR0LmhlbHNsZXlAZ21haWwuY29tPgpS ZXZpZXdlZC1ieTogQWxleGV5IE1ha2hhbG92IDxhbWFraGFsb3ZAdm13YXJlLmNvbT4KUmV2aWV3 ZWQtYnk6IEJvIEdhbiA8Z2FuYkB2bXdhcmUuY29tPgpTaWduZWQtb2ZmLWJ5OiBHcmVnIEtyb2Fo LUhhcnRtYW4gPGdyZWdraEBsaW51eGZvdW5kYXRpb24ub3JnPgotLS0KCiBhcmNoL3g4Ni9pbmNs dWRlL2FzbS9jcHVmZWF0dXJlLmggIHwgICAgMSArCiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVm ZWF0dXJlcy5oIHwgICAgNyArKysrKystCiBhcmNoL3g4Ni9rZXJuZWwvY3B1L2NvbW1vbi5jICAg ICAgIHwgICAxMCArKysrKysrLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyks IDQgZGVsZXRpb25zKC0pCgoKCi0tClRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5k IHRoZSBsaW5lICJ1bnN1YnNjcmliZSBsaW51eC1lZGFjIiBpbgp0aGUgYm9keSBvZiBhIG1lc3Nh Z2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZwpNb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBo dHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwKCi0tLSBhL2FyY2gveDg2 L2luY2x1ZGUvYXNtL2NwdWZlYXR1cmUuaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHVm ZWF0dXJlLmgKQEAgLTI3LDYgKzI3LDcgQEAgZW51bSBjcHVpZF9sZWFmcwogCUNQVUlEXzZfRUFY LAogCUNQVUlEXzgwMDBfMDAwQV9FRFgsCiAJQ1BVSURfN19FQ1gsCisJQ1BVSURfODAwMF8wMDA3 X0VCWCwKIH07CiAKICNpZmRlZiBDT05GSUdfWDg2X0ZFQVRVUkVfTkFNRVMKLS0tIGEvYXJjaC94 ODYvaW5jbHVkZS9hc20vY3B1ZmVhdHVyZXMuaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9j cHVmZWF0dXJlcy5oCkBAIC0xMiw3ICsxMiw3IEBACiAvKgogICogRGVmaW5lcyB4ODYgQ1BVIGZl YXR1cmUgYml0cwogICovCi0jZGVmaW5lIE5DQVBJTlRTCTE3CS8qIE4gMzItYml0IHdvcmRzIHdv cnRoIG9mIGluZm8gKi8KKyNkZWZpbmUgTkNBUElOVFMJMTgJLyogTiAzMi1iaXQgd29yZHMgd29y dGggb2YgaW5mbyAqLwogI2RlZmluZSBOQlVHSU5UUwkxCS8qIE4gMzItYml0IGJ1ZyBmbGFncyAq LwogCiAvKgpAQCAtMjgwLDYgKzI4MCwxMSBAQAogI2RlZmluZSBYODZfRkVBVFVSRV9QS1UJCSgx NiozMisgMykgLyogUHJvdGVjdGlvbiBLZXlzIGZvciBVc2Vyc3BhY2UgKi8KICNkZWZpbmUgWDg2 X0ZFQVRVUkVfT1NQS0UJKDE2KjMyKyA0KSAvKiBPUyBQcm90ZWN0aW9uIEtleXMgRW5hYmxlICov CiAKKy8qIEFNRC1kZWZpbmVkIENQVSBmZWF0dXJlcywgQ1BVSUQgbGV2ZWwgMHg4MDAwMDAwNyAo ZWJ4KSwgd29yZCAxNyAqLworI2RlZmluZSBYODZfRkVBVFVSRV9PVkVSRkxPV19SRUNPViAoMTcq MzIrMCkgLyogTUNBIG92ZXJmbG93IHJlY292ZXJ5IHN1cHBvcnQgKi8KKyNkZWZpbmUgWDg2X0ZF QVRVUkVfU1VDQ09SCSgxNyozMisxKSAvKiBVbmNvcnJlY3RhYmxlIGVycm9yIGNvbnRhaW5tZW50 IGFuZCByZWNvdmVyeSAqLworI2RlZmluZSBYODZfRkVBVFVSRV9TTUNBCSgxNyozMiszKSAvKiBT Y2FsYWJsZSBNQ0EgKi8KKwogLyoKICAqIEJVRyB3b3JkKHMpCiAgKi8KLS0tIGEvYXJjaC94ODYv a2VybmVsL2NwdS9jb21tb24uYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NvbW1vbi5jCkBA IC03NDEsNiArNzQxLDEzIEBAIHZvaWQgZ2V0X2NwdV9jYXAoc3RydWN0IGNwdWluZm9feDg2ICpj KQogCQl9CiAJfQogCisJaWYgKGMtPmV4dGVuZGVkX2NwdWlkX2xldmVsID49IDB4ODAwMDAwMDcp IHsKKwkJY3B1aWQoMHg4MDAwMDAwNywgJmVheCwgJmVieCwgJmVjeCwgJmVkeCk7CisKKwkJYy0+ eDg2X2NhcGFiaWxpdHlbQ1BVSURfODAwMF8wMDA3X0VCWF0gPSBlYng7CisJCWMtPng4Nl9wb3dl ciA9IGVkeDsKKwl9CisKIAlpZiAoYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPj0gMHg4MDAwMDAw OCkgewogCQljcHVpZCgweDgwMDAwMDA4LCAmZWF4LCAmZWJ4LCAmZWN4LCAmZWR4KTsKIApAQCAt NzUzLDkgKzc2MCw2IEBAIHZvaWQgZ2V0X2NwdV9jYXAoc3RydWN0IGNwdWluZm9feDg2ICpjKQog CQljLT54ODZfcGh5c19iaXRzID0gMzY7CiAjZW5kaWYKIAotCWlmIChjLT5leHRlbmRlZF9jcHVp ZF9sZXZlbCA+PSAweDgwMDAwMDA3KQotCQljLT54ODZfcG93ZXIgPSBjcHVpZF9lZHgoMHg4MDAw MDAwNyk7Ci0KIAlpZiAoYy0+ZXh0ZW5kZWRfY3B1aWRfbGV2ZWwgPj0gMHg4MDAwMDAwYSkKIAkJ Yy0+eDg2X2NhcGFiaWxpdHlbQ1BVSURfODAwMF8wMDBBX0VEWF0gPSBjcHVpZF9lZHgoMHg4MDAw MDAwYSk7CiAK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3763EECDFB3 for ; Mon, 16 Jul 2018 07:45:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E359C2075B for ; Mon, 16 Jul 2018 07:45:03 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E359C2075B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=linuxfoundation.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389512AbeGPILE (ORCPT ); Mon, 16 Jul 2018 04:11:04 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:48404 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388939AbeGPILD (ORCPT ); Mon, 16 Jul 2018 04:11:03 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 61756CA8; Mon, 16 Jul 2018 07:44:59 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Yazen Ghannam , Borislav Petkov , Andy Lutomirski , Borislav Petkov , Brian Gerst , Denys Vlasenko , "H. Peter Anvin" , Linus Torvalds , Peter Zijlstra , Thomas Gleixner , Tony Luck , linux-edac , Ingo Molnar , "Srivatsa S. Bhat" , "Matt Helsley (VMware)" , Alexey Makhalov , Bo Gan Subject: [PATCH 4.4 32/43] x86/cpu: Add detection of AMD RAS Capabilities Date: Mon, 16 Jul 2018 09:36:37 +0200 Message-Id: <20180716073515.436640999@linuxfoundation.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180716073511.796555857@linuxfoundation.org> References: <20180716073511.796555857@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.4-stable review patch. If anyone has any objections, please let me know. ------------------ From: Yazen Ghannam commit 71faad43060d3d2040583635fbf7d1bdb3d04118 upstream Add a new CPUID leaf to hold the contents of CPUID 0x80000007_EBX (RasCap). Define bits that are currently in use: Bit 0: McaOverflowRecov Bit 1: SUCCOR Bit 3: ScalableMca Signed-off-by: Yazen Ghannam [ Shorten comment. ] Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tony Luck Cc: linux-edac Link: http://lkml.kernel.org/r/1462971509-3856-5-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar Signed-off-by: Srivatsa S. Bhat Reviewed-by: Matt Helsley (VMware) Reviewed-by: Alexey Makhalov Reviewed-by: Bo Gan Signed-off-by: Greg Kroah-Hartman --- arch/x86/include/asm/cpufeature.h | 1 + arch/x86/include/asm/cpufeatures.h | 7 ++++++- arch/x86/kernel/cpu/common.c | 10 +++++++--- 3 files changed, 14 insertions(+), 4 deletions(-) --- a/arch/x86/include/asm/cpufeature.h +++ b/arch/x86/include/asm/cpufeature.h @@ -27,6 +27,7 @@ enum cpuid_leafs CPUID_6_EAX, CPUID_8000_000A_EDX, CPUID_7_ECX, + CPUID_8000_0007_EBX, }; #ifdef CONFIG_X86_FEATURE_NAMES --- a/arch/x86/include/asm/cpufeatures.h +++ b/arch/x86/include/asm/cpufeatures.h @@ -12,7 +12,7 @@ /* * Defines x86 CPU feature bits */ -#define NCAPINTS 17 /* N 32-bit words worth of info */ +#define NCAPINTS 18 /* N 32-bit words worth of info */ #define NBUGINTS 1 /* N 32-bit bug flags */ /* @@ -280,6 +280,11 @@ #define X86_FEATURE_PKU (16*32+ 3) /* Protection Keys for Userspace */ #define X86_FEATURE_OSPKE (16*32+ 4) /* OS Protection Keys Enable */ +/* AMD-defined CPU features, CPUID level 0x80000007 (ebx), word 17 */ +#define X86_FEATURE_OVERFLOW_RECOV (17*32+0) /* MCA overflow recovery support */ +#define X86_FEATURE_SUCCOR (17*32+1) /* Uncorrectable error containment and recovery */ +#define X86_FEATURE_SMCA (17*32+3) /* Scalable MCA */ + /* * BUG word(s) */ --- a/arch/x86/kernel/cpu/common.c +++ b/arch/x86/kernel/cpu/common.c @@ -741,6 +741,13 @@ void get_cpu_cap(struct cpuinfo_x86 *c) } } + if (c->extended_cpuid_level >= 0x80000007) { + cpuid(0x80000007, &eax, &ebx, &ecx, &edx); + + c->x86_capability[CPUID_8000_0007_EBX] = ebx; + c->x86_power = edx; + } + if (c->extended_cpuid_level >= 0x80000008) { cpuid(0x80000008, &eax, &ebx, &ecx, &edx); @@ -753,9 +760,6 @@ void get_cpu_cap(struct cpuinfo_x86 *c) c->x86_phys_bits = 36; #endif - if (c->extended_cpuid_level >= 0x80000007) - c->x86_power = cpuid_edx(0x80000007); - if (c->extended_cpuid_level >= 0x8000000a) c->x86_capability[CPUID_8000_000A_EDX] = cpuid_edx(0x8000000a);