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,70/72] x86/MCE/AMD: Always give panic severity for UC errors in kernel context From: Greg Kroah-Hartman Message-Id: <20171119143535.240440563@linuxfoundation.org> Date: Sun, 19 Nov 2017 15:39:14 +0100 To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Yazen Ghannam , Borislav Petkov , Linus Torvalds , Peter Zijlstra , Thomas Gleixner , Tony Luck , linux-edac , Ingo Molnar List-ID: NC45LXN0YWJsZSByZXZpZXcgcGF0Y2guICBJZiBhbnlvbmUgaGFzIGFueSBvYmplY3Rpb25zLCBw bGVhc2UgbGV0IG1lIGtub3cuCgotLS0tLS0tLS0tLS0tLS0tLS0KCkZyb206IFlhemVuIEdoYW5u YW0gPHlhemVuLmdoYW5uYW1AYW1kLmNvbT4KCmNvbW1pdCBkNjVkZmM4MWJiMzg5NGZkYjY4Y2Jj NzRiYmY1ZmI0OGQyMzU0MDcxIHVwc3RyZWFtLgoKVGhlIEFNRCBzZXZlcml0eSBncmFkaW5nIGZ1 bmN0aW9uIHdhcyBpbnRyb2R1Y2VkIGluIGtlcm5lbCA0LjEuIFRoZQpjdXJyZW50IGxvZ2ljIGNh biBwb3NzaWJseSBnaXZlIE1DRV9BUl9TRVZFUklUWSBmb3IgdW5jb3JyZWN0YWJsZQplcnJvcnMg aW4ga2VybmVsIGNvbnRleHQuIFRoZSBzeXN0ZW0gbWF5IHRoZW4gZ2V0IHN0dWNrIGluIGEgbG9v cCBhcwptZW1vcnlfZmFpbHVyZSgpIHdpbGwgdHJ5IHRvIGhhbmRsZSB0aGUgYmFkIGtlcm5lbCBt ZW1vcnkgYW5kIGZpbmQgaXQKYnVzeS4KClJldHVybiBNQ0VfUEFOSUNfU0VWRVJJVFkgZm9yIGFs bCBVQyBlcnJvcnMgSU5fS0VSTkVMIGNvbnRleHQgb24gQU1ECnN5c3RlbXMuCgpBZnRlcjoKCiAg YjJmOWQ2NzhlMjhjICgieDg2L21jZTogQ2hlY2sgZm9yIGZhdWx0cyB0YWdnZWQgaW4gRVhUQUJM RV9DTEFTU19GQVVMVCBleGNlcHRpb24gdGFibGUgZW50cmllcyIpCgp3YXMgYWNjZXB0ZWQgaW4g djQuNiwgdGhpcyBpc3N1ZSB3YXMgbWFza2VkIGJlY2F1c2Ugb2YgdGhlIHRhaWwtZW5kIGF0dGVt cHQKYXQga2VybmVsIG1vZGUgcmVjb3ZlcnkgaW4gdGhlICNNQyBoYW5kbGVyLgoKSG93ZXZlciwg dW5jb3JyZWN0YWJsZSBlcnJvcnMgSU5fS0VSTkVMIGNvbnRleHQgc2hvdWxkIGFsd2F5cyBiZSBj b25zaWRlcmVkCnVucmVjb3ZlcmFibGUgYW5kIGNhdXNlIGEgcGFuaWMuCgpTaWduZWQtb2ZmLWJ5 OiBZYXplbiBHaGFubmFtIDx5YXplbi5naGFubmFtQGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IEJv cmlzbGF2IFBldGtvdiA8YnBAc3VzZS5kZT4KQ2M6IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0Bs aW51eC1mb3VuZGF0aW9uLm9yZz4KQ2M6IFBldGVyIFppamxzdHJhIDxwZXRlcnpAaW5mcmFkZWFk Lm9yZz4KQ2M6IFRob21hcyBHbGVpeG5lciA8dGdseEBsaW51dHJvbml4LmRlPgpDYzogVG9ueSBM dWNrIDx0b255Lmx1Y2tAaW50ZWwuY29tPgpDYzogbGludXgtZWRhYyA8bGludXgtZWRhY0B2Z2Vy Lmtlcm5lbC5vcmc+CkZpeGVzOiBiZjgwYmJkN2RjZjUgKHg4Ni9tY2U6IEFkZCBhbiBBTUQgc2V2 ZXJpdGllcy1ncmFkaW5nIGZ1bmN0aW9uKQpMaW5rOiBodHRwOi8vbGttbC5rZXJuZWwub3JnL3Iv MjAxNzExMDYxNzQ2MzMuMTM1NzYtMS1icEBhbGllbjguZGUKU2lnbmVkLW9mZi1ieTogSW5nbyBN b2xuYXIgPG1pbmdvQGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IEdyZWcgS3JvYWgtSGFydG1h biA8Z3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc+Ci0tLQogYXJjaC94ODYva2VybmVsL2NwdS9t Y2hlY2svbWNlLXNldmVyaXR5LmMgfCAgICA3ICsrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGlu c2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgoKCi0tClRvIHVuc3Vic2NyaWJlIGZyb20gdGhp cyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZSBsaW51eC1lZGFjIiBpbgp0aGUgYm9k eSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZwpNb3JlIG1ham9yZG9t byBpbmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwKCi0t LSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbWNoZWNrL21jZS1zZXZlcml0eS5jCisrKyBiL2FyY2gv eDg2L2tlcm5lbC9jcHUvbWNoZWNrL21jZS1zZXZlcml0eS5jCkBAIC0yNDUsNiArMjQ1LDkgQEAg c3RhdGljIGludCBtY2Vfc2V2ZXJpdHlfYW1kKHN0cnVjdCBtY2UgKgogCiAJaWYgKG0tPnN0YXR1 cyAmIE1DSV9TVEFUVVNfVUMpIHsKIAorCQlpZiAoY3R4ID09IElOX0tFUk5FTCkKKwkJCXJldHVy biBNQ0VfUEFOSUNfU0VWRVJJVFk7CisKIAkJLyoKIAkJICogT24gb2xkZXIgc3lzdGVtcyB3aGVy ZSBvdmVyZmxvd19yZWNvdiBmbGFnIGlzIG5vdCBwcmVzZW50LCB3ZQogCQkgKiBzaG91bGQgc2lt cGx5IHBhbmljIGlmIGFuIGVycm9yIG92ZXJmbG93IG9jY3Vycy4gSWYKQEAgLTI1NSwxMCArMjU4 LDYgQEAgc3RhdGljIGludCBtY2Vfc2V2ZXJpdHlfYW1kKHN0cnVjdCBtY2UgKgogCQkJaWYgKG1j ZV9mbGFncy5zbWNhKQogCQkJCXJldHVybiBtY2Vfc2V2ZXJpdHlfYW1kX3NtY2EobSwgY3R4KTsK IAotCQkJLyogc29mdHdhcmUgY2FuIHRyeSB0byBjb250YWluICovCi0JCQlpZiAoIShtLT5tY2dz dGF0dXMgJiBNQ0dfU1RBVFVTX1JJUFYpICYmIChjdHggPT0gSU5fS0VSTkVMKSkKLQkJCQlyZXR1 cm4gTUNFX1BBTklDX1NFVkVSSVRZOwotCiAJCQkvKiBraWxsIGN1cnJlbnQgcHJvY2VzcyAqLwog CQkJcmV0dXJuIE1DRV9BUl9TRVZFUklUWTsKIAkJfSBlbHNlIHsK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753242AbdKSOn2 (ORCPT ); Sun, 19 Nov 2017 09:43:28 -0500 Received: from mail.linuxfoundation.org ([140.211.169.12]:53342 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752512AbdKSOmc (ORCPT ); Sun, 19 Nov 2017 09:42:32 -0500 From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Yazen Ghannam , Borislav Petkov , Linus Torvalds , Peter Zijlstra , Thomas Gleixner , Tony Luck , linux-edac , Ingo Molnar Subject: [PATCH 4.9 70/72] x86/MCE/AMD: Always give panic severity for UC errors in kernel context Date: Sun, 19 Nov 2017 15:39:14 +0100 Message-Id: <20171119143535.240440563@linuxfoundation.org> X-Mailer: git-send-email 2.15.0 In-Reply-To: <20171119143532.376035495@linuxfoundation.org> References: <20171119143532.376035495@linuxfoundation.org> User-Agent: quilt/0.65 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.9-stable review patch. If anyone has any objections, please let me know. ------------------ From: Yazen Ghannam commit d65dfc81bb3894fdb68cbc74bbf5fb48d2354071 upstream. The AMD severity grading function was introduced in kernel 4.1. The current logic can possibly give MCE_AR_SEVERITY for uncorrectable errors in kernel context. The system may then get stuck in a loop as memory_failure() will try to handle the bad kernel memory and find it busy. Return MCE_PANIC_SEVERITY for all UC errors IN_KERNEL context on AMD systems. After: b2f9d678e28c ("x86/mce: Check for faults tagged in EXTABLE_CLASS_FAULT exception table entries") was accepted in v4.6, this issue was masked because of the tail-end attempt at kernel mode recovery in the #MC handler. However, uncorrectable errors IN_KERNEL context should always be considered unrecoverable and cause a panic. Signed-off-by: Yazen Ghannam Signed-off-by: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tony Luck Cc: linux-edac Fixes: bf80bbd7dcf5 (x86/mce: Add an AMD severities-grading function) Link: http://lkml.kernel.org/r/20171106174633.13576-1-bp@alien8.de Signed-off-by: Ingo Molnar Signed-off-by: Greg Kroah-Hartman --- arch/x86/kernel/cpu/mcheck/mce-severity.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) --- a/arch/x86/kernel/cpu/mcheck/mce-severity.c +++ b/arch/x86/kernel/cpu/mcheck/mce-severity.c @@ -245,6 +245,9 @@ static int mce_severity_amd(struct mce * if (m->status & MCI_STATUS_UC) { + if (ctx == IN_KERNEL) + return MCE_PANIC_SEVERITY; + /* * On older systems where overflow_recov flag is not present, we * should simply panic if an error overflow occurs. If @@ -255,10 +258,6 @@ static int mce_severity_amd(struct mce * if (mce_flags.smca) return mce_severity_amd_smca(m, ctx); - /* software can try to contain */ - if (!(m->mcgstatus & MCG_STATUS_RIPV) && (ctx == IN_KERNEL)) - return MCE_PANIC_SEVERITY; - /* kill current process */ return MCE_AR_SEVERITY; } else {