diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/ia64/kernel/acpi.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index bfb4d01e0e51..5207035dc061 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c | |||
@@ -429,22 +429,24 @@ static u32 __devinitdata pxm_flag[PXM_FLAG_LEN]; | |||
429 | static struct acpi_table_slit __initdata *slit_table; | 429 | static struct acpi_table_slit __initdata *slit_table; |
430 | cpumask_t early_cpu_possible_map = CPU_MASK_NONE; | 430 | cpumask_t early_cpu_possible_map = CPU_MASK_NONE; |
431 | 431 | ||
432 | static int get_processor_proximity_domain(struct acpi_srat_cpu_affinity *pa) | 432 | static int __init |
433 | get_processor_proximity_domain(struct acpi_srat_cpu_affinity *pa) | ||
433 | { | 434 | { |
434 | int pxm; | 435 | int pxm; |
435 | 436 | ||
436 | pxm = pa->proximity_domain_lo; | 437 | pxm = pa->proximity_domain_lo; |
437 | if (ia64_platform_is("sn2")) | 438 | if (ia64_platform_is("sn2") || acpi_srat_revision >= 2) |
438 | pxm += pa->proximity_domain_hi[0] << 8; | 439 | pxm += pa->proximity_domain_hi[0] << 8; |
439 | return pxm; | 440 | return pxm; |
440 | } | 441 | } |
441 | 442 | ||
442 | static int get_memory_proximity_domain(struct acpi_srat_mem_affinity *ma) | 443 | static int __init |
444 | get_memory_proximity_domain(struct acpi_srat_mem_affinity *ma) | ||
443 | { | 445 | { |
444 | int pxm; | 446 | int pxm; |
445 | 447 | ||
446 | pxm = ma->proximity_domain; | 448 | pxm = ma->proximity_domain; |
447 | if (!ia64_platform_is("sn2")) | 449 | if (!ia64_platform_is("sn2") && acpi_srat_revision <= 1) |
448 | pxm &= 0xff; | 450 | pxm &= 0xff; |
449 | 451 | ||
450 | return pxm; | 452 | return pxm; |