diff options
Diffstat (limited to 'arch/ia64/kernel/acpi.c')
-rw-r--r-- | arch/ia64/kernel/acpi.c | 28 |
1 files changed, 7 insertions, 21 deletions
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index 467497ade45f..0d407b300762 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c | |||
@@ -799,14 +799,9 @@ int acpi_isa_irq_to_gsi(unsigned isa_irq, u32 *gsi) | |||
799 | * ACPI based hotplug CPU support | 799 | * ACPI based hotplug CPU support |
800 | */ | 800 | */ |
801 | #ifdef CONFIG_ACPI_HOTPLUG_CPU | 801 | #ifdef CONFIG_ACPI_HOTPLUG_CPU |
802 | static | 802 | static int acpi_map_cpu2node(acpi_handle handle, int cpu, int physid) |
803 | int acpi_map_cpu2node(acpi_handle handle, int cpu, int physid) | ||
804 | { | 803 | { |
805 | #ifdef CONFIG_ACPI_NUMA | 804 | #ifdef CONFIG_ACPI_NUMA |
806 | int pxm_id; | ||
807 | int nid; | ||
808 | |||
809 | pxm_id = acpi_get_pxm(handle); | ||
810 | /* | 805 | /* |
811 | * We don't have cpu-only-node hotadd. But if the system equips | 806 | * We don't have cpu-only-node hotadd. But if the system equips |
812 | * SRAT table, pxm is already found and node is ready. | 807 | * SRAT table, pxm is already found and node is ready. |
@@ -814,11 +809,10 @@ int acpi_map_cpu2node(acpi_handle handle, int cpu, int physid) | |||
814 | * This code here is for the system which doesn't have full SRAT | 809 | * This code here is for the system which doesn't have full SRAT |
815 | * table for possible cpus. | 810 | * table for possible cpus. |
816 | */ | 811 | */ |
817 | nid = acpi_map_pxm_to_node(pxm_id); | ||
818 | node_cpuid[cpu].phys_id = physid; | 812 | node_cpuid[cpu].phys_id = physid; |
819 | node_cpuid[cpu].nid = nid; | 813 | node_cpuid[cpu].nid = acpi_get_node(handle); |
820 | #endif | 814 | #endif |
821 | return (0); | 815 | return 0; |
822 | } | 816 | } |
823 | 817 | ||
824 | int additional_cpus __initdata = -1; | 818 | int additional_cpus __initdata = -1; |
@@ -925,7 +919,7 @@ static acpi_status acpi_map_iosapic(acpi_handle handle, u32 depth, | |||
925 | union acpi_object *obj; | 919 | union acpi_object *obj; |
926 | struct acpi_madt_io_sapic *iosapic; | 920 | struct acpi_madt_io_sapic *iosapic; |
927 | unsigned int gsi_base; | 921 | unsigned int gsi_base; |
928 | int pxm, node; | 922 | int node; |
929 | 923 | ||
930 | /* Only care about objects w/ a method that returns the MADT */ | 924 | /* Only care about objects w/ a method that returns the MADT */ |
931 | if (ACPI_FAILURE(acpi_evaluate_object(handle, "_MAT", NULL, &buffer))) | 925 | if (ACPI_FAILURE(acpi_evaluate_object(handle, "_MAT", NULL, &buffer))) |
@@ -952,17 +946,9 @@ static acpi_status acpi_map_iosapic(acpi_handle handle, u32 depth, | |||
952 | 946 | ||
953 | kfree(buffer.pointer); | 947 | kfree(buffer.pointer); |
954 | 948 | ||
955 | /* | 949 | /* OK, it's an IOSAPIC MADT entry; associate it with a node */ |
956 | * OK, it's an IOSAPIC MADT entry, look for a _PXM value to tell | 950 | node = acpi_get_node(handle); |
957 | * us which node to associate this with. | 951 | if (node == NUMA_NO_NODE || !node_online(node) || |
958 | */ | ||
959 | pxm = acpi_get_pxm(handle); | ||
960 | if (pxm < 0) | ||
961 | return AE_OK; | ||
962 | |||
963 | node = pxm_to_node(pxm); | ||
964 | |||
965 | if (node >= MAX_NUMNODES || !node_online(node) || | ||
966 | cpumask_empty(cpumask_of_node(node))) | 952 | cpumask_empty(cpumask_of_node(node))) |
967 | return AE_OK; | 953 | return AE_OK; |
968 | 954 | ||