summaryrefslogtreecommitdiffstats
path: root/arch/ia64
diff options
context:
space:
mode:
authorAlexey Starikovskiy <alexey.y.starikovskiy@linux.intel.com>2007-02-02 22:02:55 -0500
committerLen Brown <len.brown@intel.com>2007-02-02 22:02:55 -0500
commitdefad23020bb7701b3ad414135c73fc03054507b (patch)
tree20b1f8ecade8654355502f47437eabde2b62e7eb /arch/ia64
parent45eded8703c0f9d58a8807f80baa9fe98ac0ec67 (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')
-rw-r--r--arch/ia64/kernel/acpi.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c
index 989ffc3f7ce..a99b0cc9288 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)
int pxm;
pxm = ma->proximity_domain;
- if (ia64_platform_is("sn2"))
- pxm += ma->reserved << 8;
+ if (!ia64_platform_is("sn2"))
+ pxm &= 0xff;
return pxm;
}