aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStarikovskiy, Alexey Y <alexey.y.starikovskiy@intel.com>2006-08-18 11:23:00 -0400
committerLen Brown <len.brown@intel.com>2006-08-18 12:56:50 -0400
commitdf6fd31995cb2e38b2a7e94bc8f1559b8f55404e (patch)
treeb6e14215a9a9757d6f149c75b5543a31c0f6766e
parentd68909f4c3eee09c13d4e5c86512c6c075553dbd (diff)
downloadkernel_samsung_aries-df6fd31995cb2e38b2a7e94bc8f1559b8f55404e.zip
kernel_samsung_aries-df6fd31995cb2e38b2a7e94bc8f1559b8f55404e.tar.gz
kernel_samsung_aries-df6fd31995cb2e38b2a7e94bc8f1559b8f55404e.tar.bz2
ACPI: relax BAD_MADT_ENTRY check to allow LSAPIC variable length string UIDs
ACPI 3.0 appended a variable length UID string to the LAPIC structure as part of support for > 256 processors. So the BAD_MADT_ENTRY() sanity check can no longer compare for equality with a fixed structure length. Signed-off-by: Alexey Y Starikovskiy <alexey.y.starikovskiy@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
-rw-r--r--arch/i386/kernel/acpi/boot.c2
-rw-r--r--arch/ia64/kernel/acpi.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c
index 0db6387..ee003bc 100644
--- a/arch/i386/kernel/acpi/boot.c
+++ b/arch/i386/kernel/acpi/boot.c
@@ -59,7 +59,7 @@ static inline int gsi_irq_sharing(int gsi) { return gsi; }
#define BAD_MADT_ENTRY(entry, end) ( \
(!entry) || (unsigned long)entry + sizeof(*entry) > end || \
- ((acpi_table_entry_header *)entry)->length != sizeof(*entry))
+ ((acpi_table_entry_header *)entry)->length < sizeof(*entry))
#define PREFIX "ACPI: "
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c
index 99761b8..0176556 100644
--- a/arch/ia64/kernel/acpi.c
+++ b/arch/ia64/kernel/acpi.c
@@ -55,7 +55,7 @@
#define BAD_MADT_ENTRY(entry, end) ( \
(!entry) || (unsigned long)entry + sizeof(*entry) > end || \
- ((acpi_table_entry_header *)entry)->length != sizeof(*entry))
+ ((acpi_table_entry_header *)entry)->length < sizeof(*entry))
#define PREFIX "ACPI: "