From: Al Stone <al.stone@linaro.org>
To: linux-acpi@vger.kernel.org
Cc: linaro-acpi@lists.linaro.org, linaro-kernel@lists.linaro.org,
patches@linaro.org, Al Stone <al.stone@linaro.org>
Subject: [PATCH 1/4] ACPI: workaround x86 firmware using reserved MADT subtable IDs
Date: Wed, 14 Oct 2015 15:26:22 -0600 [thread overview]
Message-ID: <1444857985-28844-2-git-send-email-al.stone@linaro.org> (raw)
In-Reply-To: <1444857985-28844-1-git-send-email-al.stone@linaro.org>
According to the ACPI specification, version 6.0, table 5-46, MADT
subtable IDs in the range of 0x10-0x7f are reserved for possible
future use by the specification. The function bad_madt_entry() tries
to enforce the spec, but it turns out there are x86 machines that use
0x7f even though they should not.
So, continue to enforce this rule for arm64, since we're starting out
fresh, but relax it for systems already out there so we don't keep them
from booting.
Signed-off-by: Al Stone <al.stone@linaro.org>
---
drivers/acpi/tables.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
index a2ed38a..e5cfd72 100644
--- a/drivers/acpi/tables.c
+++ b/drivers/acpi/tables.c
@@ -413,9 +413,17 @@ static int __init bad_madt_entry(struct acpi_table_header *table,
}
if (entry->type >= ms->num_types) {
- pr_err("undefined MADT subtable type for FADT %d.%d: %d (length %d)\n",
- major, minor, entry->type, entry->length);
- return 1;
+ if (IS_ENABLED(CONFIG_ARM64)) {
+ /* Enforce this stricture on arm64... */
+ pr_err("undefined MADT subtable type for FADT %d.%d: %d (length %d)\n",
+ major, minor, entry->type, entry->length);
+ return 1;
+ } else {
+ /* ... but relax it on legacy systems so they boot */
+ pr_warn("undefined MADT subtable type for FADT %d.%d: %d (length %d)\n",
+ major, minor, entry->type, entry->length);
+ return 0;
+ }
}
/* verify that the table is allowed for this version of the spec */
--
2.4.3
next prev parent reply other threads:[~2015-10-14 21:26 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-14 21:26 [PATCH 0/4] Fix regressions uncovered by bad_madt_entry() patches Al Stone
2015-10-14 21:26 ` Al Stone [this message]
2015-10-14 23:34 ` [PATCH 1/4] ACPI: workaround x86 firmware using reserved MADT subtable IDs Rafael J. Wysocki
2015-10-14 21:26 ` [PATCH 2/4] ACPI: workaround x86 firmware with mis-matched FADT/MADT revisions Al Stone
2015-10-14 23:36 ` Rafael J. Wysocki
2015-10-14 21:26 ` [PATCH 3/4] ACPI: workaround FADT always being revision 2 Al Stone
2015-10-14 23:38 ` Rafael J. Wysocki
2015-10-14 21:26 ` [PATCH 4/4] ACPI: for bad_madt_entry(), the GIC ITS table is 20 bytes long, not 16 Al Stone
2015-10-14 23:39 ` Rafael J. Wysocki
2015-10-14 23:44 ` [PATCH 0/4] Fix regressions uncovered by bad_madt_entry() patches Rafael J. Wysocki
2015-10-15 0:23 ` Al Stone
2015-10-15 0:37 ` Rafael J. Wysocki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1444857985-28844-2-git-send-email-al.stone@linaro.org \
--to=al.stone@linaro.org \
--cc=linaro-acpi@lists.linaro.org \
--cc=linaro-kernel@lists.linaro.org \
--cc=linux-acpi@vger.kernel.org \
--cc=patches@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox