From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexandru Gagniuc Subject: [RFC PATCH v2 4/4] acpi: apei: Warn when GHES marks correctable errors as "fatal" Date: Mon, 16 Apr 2018 16:59:03 -0500 Message-ID: <20180416215903.7318-5-mr.nuke.me@gmail.com> References: <20180416215903.7318-1-mr.nuke.me@gmail.com> Return-path: In-Reply-To: <20180416215903.7318-1-mr.nuke.me@gmail.com> Sender: linux-kernel-owner@vger.kernel.org To: linux-acpi@vger.kernel.org, linux-edac@vger.kernel.org Cc: rjw@rjwysocki.net, lenb@kernel.org, tony.luck@intel.com, bp@alien8.de, tbaicar@codeaurora.org, will.deacon@arm.com, james.morse@arm.com, shiju.jose@huawei.com, zjzhang@codeaurora.org, gengdongjiu@huawei.com, linux-kernel@vger.kernel.org, alex_gagniuc@dellteam.com, austin_bolen@dell.com, shyam_iyer@dell.com, devel@acpica.org, mchehab@kernel.org, robert.moore@intel.com, erik.schmauss@intel.com, Alexandru Gagniuc List-Id: linux-acpi@vger.kernel.org There seems to be a culture amongst BIOS teams to want to crash the OS when an error can't be handled in firmware. Marking GHES errors as "fatal" is a very common way to do this. However, a number of errors reported by GHES may be fatal in the sense a device or link is lost, but are not fatal to the system. When there is a disagreement with firmware about the handleability of an error, print a warning message. Signed-off-by: Alexandru Gagniuc --- drivers/acpi/apei/ghes.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c index e0528da4e8f8..6a117825611d 100644 --- a/drivers/acpi/apei/ghes.c +++ b/drivers/acpi/apei/ghes.c @@ -535,13 +535,14 @@ static const struct ghes_handler *get_handler(const guid_t *type) static void ghes_do_proc(struct ghes *ghes, const struct acpi_hest_generic_status *estatus) { - int sev, sec_sev; + int sev, sec_sev, corrected_sev; struct acpi_hest_generic_data *gdata; const struct ghes_handler *handler; guid_t *sec_type; guid_t *fru_id = &NULL_UUID_LE; char *fru_text = ""; + corrected_sev = GHES_SEV_NO; sev = ghes_severity(estatus->error_severity); apei_estatus_for_each_section(estatus, gdata) { sec_type = (guid_t *)gdata->section_type; @@ -563,6 +564,13 @@ static void ghes_do_proc(struct ghes *ghes, sec_sev, err, gdata->error_data_length); } + + corrected_sev = max(corrected_sev, sec_sev); + } + + if ((sev >= GHES_SEV_PANIC) && (corrected_sev < sev)) { + pr_warn("FIRMWARE BUG: Firmware sent fatal error that we were able to correct"); + pr_warn("BROKEN FIRMWARE: Complain to your hardware vendor"); } } -- 2.14.3 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: [RFC,v2,4/4] acpi: apei: Warn when GHES marks correctable errors as "fatal" From: Alexandru Gagniuc Message-Id: <20180416215903.7318-5-mr.nuke.me@gmail.com> Date: Mon, 16 Apr 2018 16:59:03 -0500 To: linux-acpi@vger.kernel.org, linux-edac@vger.kernel.org Cc: rjw@rjwysocki.net, lenb@kernel.org, tony.luck@intel.com, bp@alien8.de, tbaicar@codeaurora.org, will.deacon@arm.com, james.morse@arm.com, shiju.jose@huawei.com, zjzhang@codeaurora.org, gengdongjiu@huawei.com, linux-kernel@vger.kernel.org, alex_gagniuc@dellteam.com, austin_bolen@dell.com, shyam_iyer@dell.com, devel@acpica.org, mchehab@kernel.org, robert.moore@intel.com, erik.schmauss@intel.com, Alexandru Gagniuc List-ID: VGhlcmUgc2VlbXMgdG8gYmUgYSBjdWx0dXJlIGFtb25nc3QgQklPUyB0ZWFtcyB0byB3YW50IHRv IGNyYXNoIHRoZQpPUyB3aGVuIGFuIGVycm9yIGNhbid0IGJlIGhhbmRsZWQgaW4gZmlybXdhcmUu IE1hcmtpbmcgR0hFUyBlcnJvcnMgYXMKImZhdGFsIiBpcyBhIHZlcnkgY29tbW9uIHdheSB0byBk byB0aGlzLgoKSG93ZXZlciwgYSBudW1iZXIgb2YgZXJyb3JzIHJlcG9ydGVkIGJ5IEdIRVMgbWF5 IGJlIGZhdGFsIGluIHRoZSBzZW5zZQphIGRldmljZSBvciBsaW5rIGlzIGxvc3QsIGJ1dCBhcmUg bm90IGZhdGFsIHRvIHRoZSBzeXN0ZW0uIFdoZW4gdGhlcmUKaXMgYSBkaXNhZ3JlZW1lbnQgd2l0 aCBmaXJtd2FyZSBhYm91dCB0aGUgaGFuZGxlYWJpbGl0eSBvZiBhbiBlcnJvciwKcHJpbnQgYSB3 YXJuaW5nIG1lc3NhZ2UuCgpTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcnUgR2Fnbml1YyA8bXIubnVr ZS5tZUBnbWFpbC5jb20+Ci0tLQogZHJpdmVycy9hY3BpL2FwZWkvZ2hlcy5jIHwgMTAgKysrKysr KysrLQogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvYWNwaS9hcGVpL2doZXMuYyBiL2RyaXZlcnMvYWNwaS9hcGVpL2do ZXMuYwppbmRleCBlMDUyOGRhNGU4ZjguLjZhMTE3ODI1NjExZCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9hY3BpL2FwZWkvZ2hlcy5jCisrKyBiL2RyaXZlcnMvYWNwaS9hcGVpL2doZXMuYwpAQCAtNTM1 LDEzICs1MzUsMTQgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBnaGVzX2hhbmRsZXIgKmdldF9oYW5k bGVyKGNvbnN0IGd1aWRfdCAqdHlwZSkKIHN0YXRpYyB2b2lkIGdoZXNfZG9fcHJvYyhzdHJ1Y3Qg Z2hlcyAqZ2hlcywKIAkJCSBjb25zdCBzdHJ1Y3QgYWNwaV9oZXN0X2dlbmVyaWNfc3RhdHVzICpl c3RhdHVzKQogewotCWludCBzZXYsIHNlY19zZXY7CisJaW50IHNldiwgc2VjX3NldiwgY29ycmVj dGVkX3NldjsKIAlzdHJ1Y3QgYWNwaV9oZXN0X2dlbmVyaWNfZGF0YSAqZ2RhdGE7CiAJY29uc3Qg c3RydWN0IGdoZXNfaGFuZGxlciAqaGFuZGxlcjsKIAlndWlkX3QgKnNlY190eXBlOwogCWd1aWRf dCAqZnJ1X2lkID0gJk5VTExfVVVJRF9MRTsKIAljaGFyICpmcnVfdGV4dCA9ICIiOwogCisJY29y cmVjdGVkX3NldiA9IEdIRVNfU0VWX05POwogCXNldiA9IGdoZXNfc2V2ZXJpdHkoZXN0YXR1cy0+ ZXJyb3Jfc2V2ZXJpdHkpOwogCWFwZWlfZXN0YXR1c19mb3JfZWFjaF9zZWN0aW9uKGVzdGF0dXMs IGdkYXRhKSB7CiAJCXNlY190eXBlID0gKGd1aWRfdCAqKWdkYXRhLT5zZWN0aW9uX3R5cGU7CkBA IC01NjMsNiArNTY0LDEzIEBAIHN0YXRpYyB2b2lkIGdoZXNfZG9fcHJvYyhzdHJ1Y3QgZ2hlcyAq Z2hlcywKIAkJCQkJICAgICAgIHNlY19zZXYsIGVyciwKIAkJCQkJICAgICAgIGdkYXRhLT5lcnJv cl9kYXRhX2xlbmd0aCk7CiAJCX0KKworCQljb3JyZWN0ZWRfc2V2ID0gbWF4KGNvcnJlY3RlZF9z ZXYsIHNlY19zZXYpOworCX0KKworCWlmICgoc2V2ID49IEdIRVNfU0VWX1BBTklDKSAmJiAoY29y cmVjdGVkX3NldiA8IHNldikpIHsKKwkJcHJfd2FybigiRklSTVdBUkUgQlVHOiBGaXJtd2FyZSBz ZW50IGZhdGFsIGVycm9yIHRoYXQgd2Ugd2VyZSBhYmxlIHRvIGNvcnJlY3QiKTsKKwkJcHJfd2Fy bigiQlJPS0VOIEZJUk1XQVJFOiBDb21wbGFpbiB0byB5b3VyIGhhcmR3YXJlIHZlbmRvciIpOwog CX0KIH0KIAo=