In latest linux-2.5 bitkeeper, if you turn on CONFIG_HOTPLUG_CPU w/
an NR_CPUS greater than physically presents CPUs, you'll end up taking
an MCA in __alloc_percpu(). kmem_cache_alloc_node() gets called with a
node value of -1. It seems other architectures are defaulting the
cpu_to_node map to zero for possible, but not present cpus. Here's a
trivial patch that does the same for ia64.
Signed-off-by: David Mosberger <davidm@hpl.hp.com>
#else
# error Fixme: Dunno how to build CPU-to-node map.
#endif
- cpu_to_node_map[cpu] = node;
+ cpu_to_node_map[cpu] = (node >= 0) ? node : 0;
if (node >= 0)
cpu_set(cpu, node_to_cpu_mask[node]);
}