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: FAILED: patch "[PATCH] acpi/nfit, x86/mce: Validate a MCE's address before using it" failed to apply to 4.9-stable tree From: Greg Kroah-Hartman Message-Id: <1542624513189106@kroah.com> Date: Mon, 19 Nov 2018 11:48:33 +0100 To: vishal.l.verma@intel.com, arnd@arndb.de, bp@suse.de, dan.j.williams@intel.com, dave.jiang@intel.com, elliott@hpe.com, hpa@zytor.com, lenb@kernel.org, linux-edac@vger.kernel.org, mingo@redhat.com, qiuxu.zhuo@intel.com, rjw@rjwysocki.net, stable@vger.kernel.org, tglx@linutronix.de, tony.luck@intel.com, x86@kernel.org, yazen.ghannam@amd.com, zwisler@kernel.org List-ID: VGhlIHBhdGNoIGJlbG93IGRvZXMgbm90IGFwcGx5IHRvIHRoZSA0Ljktc3RhYmxlIHRyZWUuCklm IHNvbWVvbmUgd2FudHMgaXQgYXBwbGllZCB0aGVyZSwgb3IgdG8gYW55IG90aGVyIHN0YWJsZSBv ciBsb25ndGVybQp0cmVlLCB0aGVuIHBsZWFzZSBlbWFpbCB0aGUgYmFja3BvcnQsIGluY2x1ZGlu ZyB0aGUgb3JpZ2luYWwgZ2l0IGNvbW1pdAppZCB0byA8c3RhYmxlQHZnZXIua2VybmVsLm9yZz4u Cgp0aGFua3MsCgpncmVnIGstaAoKLS0tLS0tLS0tLS0tLS0tLS0tIG9yaWdpbmFsIGNvbW1pdCBp biBMaW51cydzIHRyZWUgLS0tLS0tLS0tLS0tLS0tLS0tCgpGcm9tIGU4YTMwOGU1ZjQ3ZTU0NWUw ZDQxZDA2ODZjMDBmNWY1MjE3YzVmNjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFZp c2hhbCBWZXJtYSA8dmlzaGFsLmwudmVybWFAaW50ZWwuY29tPgpEYXRlOiBUaHUsIDI1IE9jdCAy MDE4IDE4OjM3OjI5IC0wNjAwClN1YmplY3Q6IFtQQVRDSF0gYWNwaS9uZml0LCB4ODYvbWNlOiBW YWxpZGF0ZSBhIE1DRSdzIGFkZHJlc3MgYmVmb3JlIHVzaW5nIGl0CgpUaGUgTkZJVCBtYWNoaW5l IGNoZWNrIGhhbmRsZXIgdXNlcyB0aGUgcGh5c2ljYWwgYWRkcmVzcyBmcm9tIHRoZSBtY2UKc3Ry dWN0dXJlLCBhbmQgY29tcGFyZXMgaXQgYWdhaW5zdCBpbmZvcm1hdGlvbiBpbiB0aGUgQUNQSSBO RklUIHRhYmxlCnRvIGRldGVybWluZSB3aGV0aGVyIHRoYXQgbG9jYXRpb24gbGllcyBvbiBhbiBO VkRJTU0uIFRoZSBtY2UtPmFkZHIKZmllbGQgaG93ZXZlciBtYXkgbm90IGFsd2F5cyBiZSB2YWxp ZCwgYW5kIHRoaXMgaXMgaW5kaWNhdGVkIGJ5IHRoZQpNQ0lfU1RBVFVTX0FERFJWIGJpdCBpbiB0 aGUgc3RhdHVzIGZpZWxkLgoKRXhwb3J0IG1jZV91c2FibGVfYWRkcmVzcygpIHdoaWNoIGFscmVh ZHkgcGVyZm9ybXMgdmFsaWRhdGlvbiBmb3IgdGhlCmFkZHJlc3MsIGFuZCB1c2UgaXQgaW4gdGhl IE5GSVQgaGFuZGxlci4KCkZpeGVzOiA2ODM5YTZkOTZmNGUgKCJuZml0OiBkbyBhbiBBUlMgc2Ny dWIgb24gaGl0dGluZyBhIGxhdGVudCBtZWRpYSBlcnJvciIpClJlcG9ydGVkLWJ5OiBSb2JlcnQg RWxsaW90dCA8ZWxsaW90dEBocGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBWaXNoYWwgVmVybWEgPHZp c2hhbC5sLnZlcm1hQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogQm9yaXNsYXYgUGV0a292IDxi cEBzdXNlLmRlPgpDQzogQXJuZCBCZXJnbWFubiA8YXJuZEBhcm5kYi5kZT4KQ2M6IERhbiBXaWxs aWFtcyA8ZGFuLmoud2lsbGlhbXNAaW50ZWwuY29tPgpDQzogRGF2ZSBKaWFuZyA8ZGF2ZS5qaWFu Z0BpbnRlbC5jb20+CkNDOiBlbGxpb3R0QGhwZS5jb20KQ0M6ICJILiBQZXRlciBBbnZpbiIgPGhw YUB6eXRvci5jb20+CkNDOiBJbmdvIE1vbG5hciA8bWluZ29AcmVkaGF0LmNvbT4KQ0M6IExlbiBC cm93biA8bGVuYkBrZXJuZWwub3JnPgpDQzogbGludXgtYWNwaUB2Z2VyLmtlcm5lbC5vcmcKQ0M6 IGxpbnV4LWVkYWMgPGxpbnV4LWVkYWNAdmdlci5rZXJuZWwub3JnPgpDQzogbGludXgtbnZkaW1t QGxpc3RzLjAxLm9yZwpDQzogUWl1eHUgWmh1byA8cWl1eHUuemh1b0BpbnRlbC5jb20+CkNDOiAi UmFmYWVsIEouIFd5c29ja2kiIDxyandAcmp3eXNvY2tpLm5ldD4KQ0M6IFJvc3MgWndpc2xlciA8 endpc2xlckBrZXJuZWwub3JnPgpDQzogc3RhYmxlIDxzdGFibGVAdmdlci5rZXJuZWwub3JnPgpD QzogVGhvbWFzIEdsZWl4bmVyIDx0Z2x4QGxpbnV0cm9uaXguZGU+CkNDOiBUb255IEx1Y2sgPHRv bnkubHVja0BpbnRlbC5jb20+CkNDOiB4ODYtbWwgPHg4NkBrZXJuZWwub3JnPgpDQzogWWF6ZW4g R2hhbm5hbSA8eWF6ZW4uZ2hhbm5hbUBhbWQuY29tPgpMaW5rOiBodHRwOi8vbGttbC5rZXJuZWwu b3JnL3IvMjAxODEwMjYwMDM3MjkuODQyMC0yLXZpc2hhbC5sLnZlcm1hQGludGVsLmNvbQoKZGlm ZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL21jZS5oIGIvYXJjaC94ODYvaW5jbHVkZS9h c20vbWNlLmgKaW5kZXggZGJkOWZlMmY2MTYzLi5jMWE4MTJiZDVhMjcgMTAwNjQ0Ci0tLSBhL2Fy Y2gveDg2L2luY2x1ZGUvYXNtL21jZS5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL21jZS5o CkBAIC0yMjIsNiArMjIyLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIG1jZV9oeWdvbl9mZWF0dXJl X2luaXQoc3RydWN0IGNwdWluZm9feDg2ICpjKSB7IHJldHVybiBtY2VfYW0KIGludCBtY2VfYXZh aWxhYmxlKHN0cnVjdCBjcHVpbmZvX3g4NiAqYyk7CiBib29sIG1jZV9pc19tZW1vcnlfZXJyb3Io c3RydWN0IG1jZSAqbSk7CiBib29sIG1jZV9pc19jb3JyZWN0YWJsZShzdHJ1Y3QgbWNlICptKTsK K2ludCBtY2VfdXNhYmxlX2FkZHJlc3Moc3RydWN0IG1jZSAqbSk7CiAKIERFQ0xBUkVfUEVSX0NQ VSh1bnNpZ25lZCwgbWNlX2V4Y2VwdGlvbl9jb3VudCk7CiBERUNMQVJFX1BFUl9DUFUodW5zaWdu ZWQsIG1jZV9wb2xsX2NvdW50KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNo ZWNrL21jZS5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9tY2hlY2svbWNlLmMKaW5kZXggNzc1Mjdi OGVhOTgyLi4zNmQyNjk2Yzk1NjMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNo ZWNrL21jZS5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL21jZS5jCkBAIC00ODUs NyArNDg1LDcgQEAgc3RhdGljIHZvaWQgbWNlX3JlcG9ydF9ldmVudChzdHJ1Y3QgcHRfcmVncyAq cmVncykKICAqIGJlIHNvbWV3aGF0IGNvbXBsaWNhdGVkIChlLmcuIHNlZ21lbnQgb2Zmc2V0IHdv dWxkIHJlcXVpcmUgYW4gaW5zdHJ1Y3Rpb24KICAqIHBhcnNlcikuIFNvIG9ubHkgc3VwcG9ydCBw aHlzaWNhbCBhZGRyZXNzZXMgdXAgdG8gcGFnZSBncmFudWFsaXR5IGZvciBub3cuCiAgKi8KLXN0 YXRpYyBpbnQgbWNlX3VzYWJsZV9hZGRyZXNzKHN0cnVjdCBtY2UgKm0pCitpbnQgbWNlX3VzYWJs ZV9hZGRyZXNzKHN0cnVjdCBtY2UgKm0pCiB7CiAJaWYgKCEobS0+c3RhdHVzICYgTUNJX1NUQVRV U19BRERSVikpCiAJCXJldHVybiAwOwpAQCAtNTA1LDYgKzUwNSw3IEBAIHN0YXRpYyBpbnQgbWNl X3VzYWJsZV9hZGRyZXNzKHN0cnVjdCBtY2UgKm0pCiAKIAlyZXR1cm4gMTsKIH0KK0VYUE9SVF9T WU1CT0xfR1BMKG1jZV91c2FibGVfYWRkcmVzcyk7CiAKIGJvb2wgbWNlX2lzX21lbW9yeV9lcnJv cihzdHJ1Y3QgbWNlICptKQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL25maXQvbWNlLmMg Yi9kcml2ZXJzL2FjcGkvbmZpdC9tY2UuYwppbmRleCA3YTUxNzA3Zjg3ZTkuLmQ2YzFiMTBmNmMy NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL25maXQvbWNlLmMKKysrIGIvZHJpdmVycy9hY3Bp L25maXQvbWNlLmMKQEAgLTI5LDYgKzI5LDEwIEBAIHN0YXRpYyBpbnQgbmZpdF9oYW5kbGVfbWNl KHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsIHVuc2lnbmVkIGxvbmcgdmFsLAogCWlmICghbWNl X2lzX21lbW9yeV9lcnJvcihtY2UpIHx8IG1jZV9pc19jb3JyZWN0YWJsZShtY2UpKQogCQlyZXR1 cm4gTk9USUZZX0RPTkU7CiAKKwkvKiBWZXJpZnkgdGhlIGFkZHJlc3MgcmVwb3J0ZWQgaW4gdGhl IE1DRSBpcyB2YWxpZC4gKi8KKwlpZiAoIW1jZV91c2FibGVfYWRkcmVzcyhtY2UpKQorCQlyZXR1 cm4gTk9USUZZX0RPTkU7CisKIAkvKgogCSAqIG1jZS0+YWRkciBjb250YWlucyB0aGUgcGh5c2lj YWwgYWRkciBhY2Nlc3NlZCB0aGF0IGNhdXNlZCB0aGUKIAkgKiBtYWNoaW5lIGNoZWNrLiBXZSBu ZWVkIHRvIHdhbGsgdGhyb3VnaCB0aGUgbGlzdCBvZiBORklUcywgYW5kIHNlZQo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out4-smtp.messagingengine.com ([66.111.4.28]:37373 "EHLO out4-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728357AbeKSVLu (ORCPT ); Mon, 19 Nov 2018 16:11:50 -0500 Subject: FAILED: patch "[PATCH] acpi/nfit, x86/mce: Validate a MCE's address before using it" failed to apply to 4.9-stable tree To: vishal.l.verma@intel.com, arnd@arndb.de, bp@suse.de, dan.j.williams@intel.com, dave.jiang@intel.com, elliott@hpe.com, hpa@zytor.com, lenb@kernel.org, linux-edac@vger.kernel.org, mingo@redhat.com, qiuxu.zhuo@intel.com, rjw@rjwysocki.net, stable@vger.kernel.org, tglx@linutronix.de, tony.luck@intel.com, x86@kernel.org, yazen.ghannam@amd.com, zwisler@kernel.org Cc: From: Date: Mon, 19 Nov 2018 11:48:33 +0100 Message-ID: <1542624513189106@kroah.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org List-ID: The patch below does not apply to the 4.9-stable tree. If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to . thanks, greg k-h ------------------ original commit in Linus's tree ------------------ >>From e8a308e5f47e545e0d41d0686c00f5f5217c5f61 Mon Sep 17 00:00:00 2001 From: Vishal Verma Date: Thu, 25 Oct 2018 18:37:29 -0600 Subject: [PATCH] acpi/nfit, x86/mce: Validate a MCE's address before using it The NFIT machine check handler uses the physical address from the mce structure, and compares it against information in the ACPI NFIT table to determine whether that location lies on an NVDIMM. The mce->addr field however may not always be valid, and this is indicated by the MCI_STATUS_ADDRV bit in the status field. Export mce_usable_address() which already performs validation for the address, and use it in the NFIT handler. Fixes: 6839a6d96f4e ("nfit: do an ARS scrub on hitting a latent media error") Reported-by: Robert Elliott Signed-off-by: Vishal Verma Signed-off-by: Borislav Petkov CC: Arnd Bergmann Cc: Dan Williams CC: Dave Jiang CC: elliott@hpe.com CC: "H. Peter Anvin" CC: Ingo Molnar CC: Len Brown CC: linux-acpi@vger.kernel.org CC: linux-edac CC: linux-nvdimm@lists.01.org CC: Qiuxu Zhuo CC: "Rafael J. Wysocki" CC: Ross Zwisler CC: stable CC: Thomas Gleixner CC: Tony Luck CC: x86-ml CC: Yazen Ghannam Link: http://lkml.kernel.org/r/20181026003729.8420-2-vishal.l.verma@intel.com diff --git a/arch/x86/include/asm/mce.h b/arch/x86/include/asm/mce.h index dbd9fe2f6163..c1a812bd5a27 100644 --- a/arch/x86/include/asm/mce.h +++ b/arch/x86/include/asm/mce.h @@ -222,6 +222,7 @@ static inline void mce_hygon_feature_init(struct cpuinfo_x86 *c) { return mce_am int mce_available(struct cpuinfo_x86 *c); bool mce_is_memory_error(struct mce *m); bool mce_is_correctable(struct mce *m); +int mce_usable_address(struct mce *m); DECLARE_PER_CPU(unsigned, mce_exception_count); DECLARE_PER_CPU(unsigned, mce_poll_count); diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c index 77527b8ea982..36d2696c9563 100644 --- a/arch/x86/kernel/cpu/mcheck/mce.c +++ b/arch/x86/kernel/cpu/mcheck/mce.c @@ -485,7 +485,7 @@ static void mce_report_event(struct pt_regs *regs) * be somewhat complicated (e.g. segment offset would require an instruction * parser). So only support physical addresses up to page granuality for now. */ -static int mce_usable_address(struct mce *m) +int mce_usable_address(struct mce *m) { if (!(m->status & MCI_STATUS_ADDRV)) return 0; @@ -505,6 +505,7 @@ static int mce_usable_address(struct mce *m) return 1; } +EXPORT_SYMBOL_GPL(mce_usable_address); bool mce_is_memory_error(struct mce *m) { diff --git a/drivers/acpi/nfit/mce.c b/drivers/acpi/nfit/mce.c index 7a51707f87e9..d6c1b10f6c25 100644 --- a/drivers/acpi/nfit/mce.c +++ b/drivers/acpi/nfit/mce.c @@ -29,6 +29,10 @@ static int nfit_handle_mce(struct notifier_block *nb, unsigned long val, if (!mce_is_memory_error(mce) || mce_is_correctable(mce)) return NOTIFY_DONE; + /* Verify the address reported in the MCE is valid. */ + if (!mce_usable_address(mce)) + return NOTIFY_DONE; + /* * mce->addr contains the physical addr accessed that caused the * machine check. We need to walk through the list of NFITs, and see