diff options
author | Alexey Starikovskiy <alexey.y.starikovskiy@linux.intel.com> | 2007-02-02 22:02:55 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2007-02-02 22:02:55 -0500 |
commit | defad23020bb7701b3ad414135c73fc03054507b (patch) | |
tree | 20b1f8ecade8654355502f47437eabde2b62e7eb /arch/ia64/kernel/acpi.c | |
parent | 45eded8703c0f9d58a8807f80baa9fe98ac0ec67 (diff) |
ACPI_NUMA: fix HP IA64 simulator issue with extended memory domain
ACPI 3.0 incorporated the SRAT spec, upping the table version to 2,
and extending the size of the proximity domain from 1-byte to 4-bytes.
This extension was into a reserved field that firmware should
set to 0, but the HP simulator had non-zero values there
resulting in unexpected huge numbers.
So mask the domain down to 8-bits for now.
A more general fix will be to check the table version
supplied by firmware and get paranoid about reserved fields.
Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@linux.intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'arch/ia64/kernel/acpi.c')
-rw-r--r-- | arch/ia64/kernel/acpi.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index 989ffc3f7ce3..a99b0cc92881 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c | |||
@@ -422,8 +422,8 @@ static int get_memory_proximity_domain(struct acpi_srat_mem_affinity *ma) | |||
422 | int pxm; | 422 | int pxm; |
423 | 423 | ||
424 | pxm = ma->proximity_domain; | 424 | pxm = ma->proximity_domain; |
425 | if (ia64_platform_is("sn2")) | 425 | if (!ia64_platform_is("sn2")) |
426 | pxm += ma->reserved << 8; | 426 | pxm &= 0xff; |
427 | 427 | ||
428 | return pxm; | 428 | return pxm; |
429 | } | 429 | } |