|
@@ -429,22 +429,24 @@ static u32 __devinitdata pxm_flag[PXM_FLAG_LEN];
|
|
|
static struct acpi_table_slit __initdata *slit_table;
|
|
|
cpumask_t early_cpu_possible_map = CPU_MASK_NONE;
|
|
|
|
|
|
-static int get_processor_proximity_domain(struct acpi_srat_cpu_affinity *pa)
|
|
|
+static int __init
|
|
|
+get_processor_proximity_domain(struct acpi_srat_cpu_affinity *pa)
|
|
|
{
|
|
|
int pxm;
|
|
|
|
|
|
pxm = pa->proximity_domain_lo;
|
|
|
- if (ia64_platform_is("sn2"))
|
|
|
+ if (ia64_platform_is("sn2") || acpi_srat_revision >= 2)
|
|
|
pxm += pa->proximity_domain_hi[0] << 8;
|
|
|
return pxm;
|
|
|
}
|
|
|
|
|
|
-static int get_memory_proximity_domain(struct acpi_srat_mem_affinity *ma)
|
|
|
+static int __init
|
|
|
+get_memory_proximity_domain(struct acpi_srat_mem_affinity *ma)
|
|
|
{
|
|
|
int pxm;
|
|
|
|
|
|
pxm = ma->proximity_domain;
|
|
|
- if (!ia64_platform_is("sn2"))
|
|
|
+ if (!ia64_platform_is("sn2") && acpi_srat_revision <= 1)
|
|
|
pxm &= 0xff;
|
|
|
|
|
|
return pxm;
|