]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - arch/x86/kernel/acpi/boot.c
Merge branch 'akpm-current/current'
[karo-tx-linux.git] / arch / x86 / kernel / acpi / boot.c
index e75907601a41c349e05c8dfe63047dc460ccdf30..3625ac798821366bbdd2680f9db172a081550fea 100644 (file)
@@ -705,8 +705,14 @@ static void acpi_map_cpu2node(acpi_handle handle, int cpu, int physid)
 
        nid = acpi_get_node(handle);
        if (nid != -1) {
+               if (try_online_node(nid)) {
+                       pr_warn("failed to online node%d for CPU%d, use node%d instead.\n",
+                               nid, cpu, first_node(node_online_map));
+                       nid = first_node(node_online_map);
+               }
                set_apicid_to_node(physid, nid);
                numa_set_node(cpu, nid);
+               set_cpu_numa_mem(cpu, local_memory_node(nid));
        }
 #endif
 }
@@ -733,9 +739,10 @@ int acpi_unmap_cpu(int cpu)
 {
 #ifdef CONFIG_ACPI_NUMA
        set_apicid_to_node(per_cpu(x86_cpu_to_apicid, cpu), NUMA_NO_NODE);
+       set_cpu_numa_mem(cpu, NUMA_NO_NODE);
 #endif
 
-       per_cpu(x86_cpu_to_apicid, cpu) = -1;
+       per_cpu(x86_cpu_to_apicid, cpu) = BAD_APICID;
        set_cpu_present(cpu, false);
        num_processors--;