X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fia64%2Fkernel%2Fnuma.c;h=0766493d4d0061ff99a48de4a2359d2852e24904;hb=9464c7cf61b9433057924c36e6e02f303a00e768;hp=20340631179f669fd7d9216d85f210c2a4cf381e;hpb=41689045f6a3cbe0550e1d34e9cc20d2e8c432ba;p=linux-2.6.git diff --git a/arch/ia64/kernel/numa.c b/arch/ia64/kernel/numa.c index 203406311..0766493d4 100644 --- a/arch/ia64/kernel/numa.c +++ b/arch/ia64/kernel/numa.c @@ -19,6 +19,7 @@ * Copyright (C) 2004 Silicon Graphics, Inc. * Jesse Barnes */ +#include #include #include #include @@ -29,36 +30,6 @@ EXPORT_SYMBOL(cpu_to_node_map); cpumask_t node_to_cpu_mask[MAX_NUMNODES] __cacheline_aligned; -void __cpuinit map_cpu_to_node(int cpu, int nid) -{ - int oldnid; - if (nid < 0) { /* just initialize by zero */ - cpu_to_node_map[cpu] = 0; - return; - } - /* sanity check first */ - oldnid = cpu_to_node_map[cpu]; - if (cpu_isset(cpu, node_to_cpu_mask[oldnid])) { - return; /* nothing to do */ - } - /* we don't have cpu-driven node hot add yet... - In usual case, node is created from SRAT at boot time. */ - if (!node_online(nid)) - nid = first_online_node; - cpu_to_node_map[cpu] = nid; - cpu_set(cpu, node_to_cpu_mask[nid]); - return; -} - -void __cpuinit unmap_cpu_from_node(int cpu, int nid) -{ - WARN_ON(!cpu_isset(cpu, node_to_cpu_mask[nid])); - WARN_ON(cpu_to_node_map[cpu] != nid); - cpu_to_node_map[cpu] = 0; - cpu_clear(cpu, node_to_cpu_mask[nid]); -} - - /** * build_cpu_to_node_map - setup cpu to node and node to cpumask arrays * @@ -79,6 +50,8 @@ void __init build_cpu_to_node_map(void) node = node_cpuid[i].nid; break; } - map_cpu_to_node(cpu, node); + cpu_to_node_map[cpu] = (node >= 0) ? node : 0; + if (node >= 0) + cpu_set(cpu, node_to_cpu_mask[node]); } }