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.9,039/241] x86/mce: Init some CPU features early From: Greg Kroah-Hartman Message-Id: <20180319180752.824360363@linuxfoundation.org> Date: Mon, 19 Mar 2018 19:05:04 +0100 To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Yazen Ghannam , Tony Luck , linux-edac , x86-ml , Borislav Petkov , Thomas Gleixner , Sasha Levin List-ID: NC45LXN0YWJsZSByZXZpZXcgcGF0Y2guICBJZiBhbnlvbmUgaGFzIGFueSBvYmplY3Rpb25zLCBw bGVhc2UgbGV0IG1lIGtub3cuCgotLS0tLS0tLS0tLS0tLS0tLS0KCkZyb206IFlhemVuIEdoYW5u YW0gPFlhemVuLkdoYW5uYW1AYW1kLmNvbT4KCgpbIFVwc3RyZWFtIGNvbW1pdCA1MjA0YmYxNzAz MWI2OWZhNWZhYTRkYzgwYTlkYzFlMjQ0NmQ3NGY5IF0KCldoZW4gdGhlIE1DQSBiYW5rcyBpbiBf X21jaGVja19jcHVfaW5pdF9nZW5lcmljKCkgYXJlIHBvbGxlZCBmb3IgbGVmdG92ZXIKZXJyb3Jz IGxvZ2dlZCBkdXJpbmcgYm9vdCBvciBmcm9tIHRoZSBwcmV2aW91cyBib290LCBpdHMgcmVxdWly ZWQgdG8gaGF2ZQpDUFUgZmVhdHVyZXMgZGV0ZWN0ZWQgc3VmZmljaWVudGx5IHNvIHRoYXQgdGhl IHJlYWRpbmcgb3V0IGFuZCBoYW5kbGluZyBvZgp0aG9zZSBlYXJseSBlcnJvcnMgaXMgZG9uZSBj b3JyZWN0bHkuCgpJZiB0aG9zZSBmZWF0dXJlcyBhcmUgbm90IGF2YWlsYWJsZSwgdGhlIGRlY29k aW5nIG1heSBtaXNzIHNvbWUgaW5mb3JtYXRpb24KYW5kIGdldCBpbmNvbXBsZXRlIGVycm9ycyBs b2dnZWQuIEZvciBleGFtcGxlLCBvbiBTTUNBIHN5c3RlbXMgdGhlIE1DQV9JUElECmFuZCBNQ0Ff U1lORCByZWdpc3RlcnMgYXJlIG5vdCBsb2dnZWQgYW5kIE1DQV9BRERSIGlzIG5vdCBtYXNrZWQK YXBwcm9wcmlhdGVseS4KClRvIGN1cmUgdGhhdCwgZG8gYSBzdWJzZXQgb2YgdGhlIGJhc2ljIGZl YXR1cmUgZGV0ZWN0aW9uIGVhcmx5IHdoaWxlIHRoZQpyZXN0IGhhcHBlbnMgaW4gaXRzIHVzdWFs IHBsYWNlIGluIF9fbWNoZWNrX2NwdV9pbml0X3ZlbmRvcigpLgoKU2lnbmVkLW9mZi1ieTogWWF6 ZW4gR2hhbm5hbSA8WWF6ZW4uR2hhbm5hbUBhbWQuY29tPgpDYzogVG9ueSBMdWNrIDx0b255Lmx1 Y2tAaW50ZWwuY29tPgpDYzogbGludXgtZWRhYyA8bGludXgtZWRhY0B2Z2VyLmtlcm5lbC5vcmc+ CkNjOiB4ODYtbWwgPHg4NkBrZXJuZWwub3JnPgpMaW5rOiBodHRwOi8vbGttbC5rZXJuZWwub3Jn L3IvMTQ4OTU5OTA1NS0yMDc1Ni0xLWdpdC1zZW5kLWVtYWlsLVlhemVuLkdoYW5uYW1AYW1kLmNv bQpbIE1hc3NhZ2UgY29tbWl0IG1lc3NhZ2UgYW5kIHNpbXBsaWZ5LiBdClNpZ25lZC1vZmYtYnk6 IEJvcmlzbGF2IFBldGtvdiA8YnBAc3VzZS5kZT4KU2lnbmVkLW9mZi1ieTogVGhvbWFzIEdsZWl4 bmVyIDx0Z2x4QGxpbnV0cm9uaXguZGU+ClNpZ25lZC1vZmYtYnk6IFNhc2hhIExldmluIDxhbGV4 YW5kZXIubGV2aW5AbWljcm9zb2Z0LmNvbT4KU2lnbmVkLW9mZi1ieTogR3JlZyBLcm9haC1IYXJ0 bWFuIDxncmVna2hAbGludXhmb3VuZGF0aW9uLm9yZz4KLS0tCiBhcmNoL3g4Ni9rZXJuZWwvY3B1 L21jaGVjay9tY2UuYyB8ICAgMzAgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgoKCi0tClRvIHVu c3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZSBsaW51 eC1lZGFjIiBpbgp0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVs Lm9yZwpNb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9y ZG9tby1pbmZvLmh0bWwKCi0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL21jZS5jCisr KyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL21jZS5jCkBAIC0xNjk1LDMwICsxNjk1LDM1 IEBAIHN0YXRpYyBpbnQgX19tY2hlY2tfY3B1X2FuY2llbnRfaW5pdChzdHIKIAlyZXR1cm4gMDsK IH0KIAotc3RhdGljIHZvaWQgX19tY2hlY2tfY3B1X2luaXRfdmVuZG9yKHN0cnVjdCBjcHVpbmZv X3g4NiAqYykKKy8qCisgKiBJbml0IGJhc2ljIENQVSBmZWF0dXJlcyBuZWVkZWQgZm9yIGVhcmx5 IGRlY29kaW5nIG9mIE1DRXMuCisgKi8KK3N0YXRpYyB2b2lkIF9fbWNoZWNrX2NwdV9pbml0X2Vh cmx5KHN0cnVjdCBjcHVpbmZvX3g4NiAqYykKIHsKLQlzd2l0Y2ggKGMtPng4Nl92ZW5kb3IpIHsK LQljYXNlIFg4Nl9WRU5ET1JfSU5URUw6Ci0JCW1jZV9pbnRlbF9mZWF0dXJlX2luaXQoYyk7Ci0J CW1jZV9hZGp1c3RfdGltZXIgPSBjbWNpX2ludGVsX2FkanVzdF90aW1lcjsKLQkJYnJlYWs7Ci0K LQljYXNlIFg4Nl9WRU5ET1JfQU1EOiB7CisJaWYgKGMtPng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRP Ul9BTUQpIHsKIAkJbWNlX2ZsYWdzLm92ZXJmbG93X3JlY292ID0gISFjcHVfaGFzKGMsIFg4Nl9G RUFUVVJFX09WRVJGTE9XX1JFQ09WKTsKIAkJbWNlX2ZsYWdzLnN1Y2NvcgkgPSAhIWNwdV9oYXMo YywgWDg2X0ZFQVRVUkVfU1VDQ09SKTsKIAkJbWNlX2ZsYWdzLnNtY2EJCSA9ICEhY3B1X2hhcyhj LCBYODZfRkVBVFVSRV9TTUNBKTsKIAotCQkvKgotCQkgKiBJbnN0YWxsIHByb3BlciBvcHMgZm9y IFNjYWxhYmxlIE1DQSBlbmFibGVkIHByb2Nlc3NvcnMKLQkJICovCiAJCWlmIChtY2VfZmxhZ3Mu c21jYSkgewogCQkJbXNyX29wcy5jdGwJPSBzbWNhX2N0bF9yZWc7CiAJCQltc3Jfb3BzLnN0YXR1 cwk9IHNtY2Ffc3RhdHVzX3JlZzsKIAkJCW1zcl9vcHMuYWRkcgk9IHNtY2FfYWRkcl9yZWc7CiAJ CQltc3Jfb3BzLm1pc2MJPSBzbWNhX21pc2NfcmVnOwogCQl9Ci0JCW1jZV9hbWRfZmVhdHVyZV9p bml0KGMpOworCX0KK30KIAorc3RhdGljIHZvaWQgX19tY2hlY2tfY3B1X2luaXRfdmVuZG9yKHN0 cnVjdCBjcHVpbmZvX3g4NiAqYykKK3sKKwlzd2l0Y2ggKGMtPng4Nl92ZW5kb3IpIHsKKwljYXNl IFg4Nl9WRU5ET1JfSU5URUw6CisJCW1jZV9pbnRlbF9mZWF0dXJlX2luaXQoYyk7CisJCW1jZV9h ZGp1c3RfdGltZXIgPSBjbWNpX2ludGVsX2FkanVzdF90aW1lcjsKKwkJYnJlYWs7CisKKwljYXNl IFg4Nl9WRU5ET1JfQU1EOiB7CisJCW1jZV9hbWRfZmVhdHVyZV9pbml0KGMpOwogCQlicmVhazsK IAkJfQogCkBAIC0xODA0LDYgKzE4MDksNyBAQCB2b2lkIG1jaGVja19jcHVfaW5pdChzdHJ1Y3Qg Y3B1aW5mb194ODYKIAogCW1hY2hpbmVfY2hlY2tfdmVjdG9yID0gZG9fbWFjaGluZV9jaGVjazsK IAorCV9fbWNoZWNrX2NwdV9pbml0X2Vhcmx5KGMpOwogCV9fbWNoZWNrX2NwdV9pbml0X2dlbmVy aWMoKTsKIAlfX21jaGVja19jcHVfaW5pdF92ZW5kb3IoYyk7CiAJX19tY2hlY2tfY3B1X2luaXRf Y2xlYXJfYmFua3MoKTsK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Google-Smtp-Source: AG47ELuIcBZvRlb4HAHzjzEDPV6Wn77W2lUShUQ5tClsRD0WlajAnq7TOqNmlK2JSL2B7PzjhlA8 ARC-Seal: i=1; a=rsa-sha256; t=1521483573; cv=none; d=google.com; s=arc-20160816; b=j2vf5Zwgla0jnRf/UT6wGCvVeg3tdv2XKVd3ore+tP8CcrdNlqjsZ2Na9VtR/GelTp i4nu1onhdFMhuNChrO6ptVFYFS0cQwx0qQW9BmhyEY8SwzH5WV8F9p1eVGRUchTyiQxF JzvPVtsIrGAiGejNcai75gni05A8K1S2ZJw65trqDJ1Ct1dKlHL00FTVLBzG+D/CnVPl 99VBB5xMeqMyEL9JATeIezA+6Wo5g3u4OQB1nn1rQsYG2/muKFyu6Fi9eWL6nNXYd653 brdWYQ42mmMqtglGUGPZZKpx2fo6tS6NlPFARc7wCMzSBKm6aFHX7MKLIE1aA+Duxqug EgTQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:user-agent:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=I/VF54YjZQsL1ts/95HTXmA4W82V2jErnI6rOYS4h4A=; b=srFnGHM+HyJsT0IoyqUKSJnvQqPyHJAUlkXx4ErD8kL8yoUInpErWfjc/mrMbVdZf7 CDJIOpXnFc2vcGf7CCVWRdzYE+Xbtuv9a8A/3S4QGuXMzUP9YJNxuYcOt9RncqSYdV4b C+uN9JtUQurxjNBdbioRgjKdOOWf7Y2HeznPWUsqw8t4imZSZUydowkfz39SvQAeaRrW 5ofkfbbZmTiFz/GsxmHjHFWxGhn8uJC10TSX9qJPzLagepafTz6S1rtWCQauM5SpvpKH 3HOFMaTrQKz77FoOTUu9yfvEWpeP06eWJVy5qD7A5KMObUJfSuAcLhVyVvLmMdfe5CYs RcUQ== ARC-Authentication-Results: i=1; mx.google.com; spf=softfail (google.com: domain of transitioning gregkh@linuxfoundation.org does not designate 90.92.61.202 as permitted sender) smtp.mailfrom=gregkh@linuxfoundation.org Authentication-Results: mx.google.com; spf=softfail (google.com: domain of transitioning gregkh@linuxfoundation.org does not designate 90.92.61.202 as permitted sender) smtp.mailfrom=gregkh@linuxfoundation.org From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Yazen Ghannam , Tony Luck , linux-edac , x86-ml , Borislav Petkov , Thomas Gleixner , Sasha Levin Subject: [PATCH 4.9 039/241] x86/mce: Init some CPU features early Date: Mon, 19 Mar 2018 19:05:04 +0100 Message-Id: <20180319180752.824360363@linuxfoundation.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180319180751.172155436@linuxfoundation.org> References: <20180319180751.172155436@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-LABELS: =?utf-8?b?IlxcU2VudCI=?= X-GMAIL-THRID: =?utf-8?q?1595391159458560633?= X-GMAIL-MSGID: =?utf-8?q?1595391159458560633?= X-Mailing-List: linux-kernel@vger.kernel.org List-ID: 4.9-stable review patch. If anyone has any objections, please let me know. ------------------ 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.Ghannam@amd.com [ Massage commit message and simplify. ] Signed-off-by: Borislav Petkov Signed-off-by: Thomas Gleixner Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- arch/x86/kernel/cpu/mcheck/mce.c | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) --- a/arch/x86/kernel/cpu/mcheck/mce.c +++ b/arch/x86/kernel/cpu/mcheck/mce.c @@ -1695,30 +1695,35 @@ static int __mcheck_cpu_ancient_init(str return 0; } -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 = cmci_intel_adjust_timer; - break; - - case X86_VENDOR_AMD: { + if (c->x86_vendor == X86_VENDOR_AMD) { mce_flags.overflow_recov = !!cpu_has(c, X86_FEATURE_OVERFLOW_RECOV); mce_flags.succor = !!cpu_has(c, X86_FEATURE_SUCCOR); mce_flags.smca = !!cpu_has(c, X86_FEATURE_SMCA); - /* - * Install proper ops for Scalable MCA enabled processors - */ if (mce_flags.smca) { msr_ops.ctl = smca_ctl_reg; msr_ops.status = smca_status_reg; msr_ops.addr = smca_addr_reg; msr_ops.misc = smca_misc_reg; } - mce_amd_feature_init(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; } @@ -1804,6 +1809,7 @@ void mcheck_cpu_init(struct cpuinfo_x86 machine_check_vector = do_machine_check; + __mcheck_cpu_init_early(c); __mcheck_cpu_init_generic(); __mcheck_cpu_init_vendor(c); __mcheck_cpu_init_clear_banks();