On 09/10/2015 10:20 AM, Sudeep Holla wrote:
From the code inspection, I can see we have 3 users of acpi_parse_entries not
just MADT but also PCC and NUMA/SRAT
Something like this solves this issue:
- if (bad_madt_entry(table_header, entry))
+ if (!strncmp(id, ACPI_SIG_MADT, 4) &&
+ bad_madt_entry(table_header, entry)
Or am I still missing something ?
Nope, I missed it. Your fix above will solve the problem; I misunderstood
how acpi_parse_entries() was being used -- somehow I had it in my head that
only MADT was in use, and just not seeing that it's being used for several
other subtable traversals also. Sorry about that, Sudeep. My mistake.
I'll add this fix for a v4, but I'll wait for a few days to see if I get any
additional comments -- I haven't heard from any x86, ia64 or ACPI maintainers
yet. OTOH, it's nice to know we've already found and fixed two sets of arm64
ACPI tables that are in error by using these patches, even with the flaws :).