Commit 7275fb97 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] Use valid node number when unmapping x86 CPUs

From: Rusty Russell <rusty@rustcorp.com.au>

From:  colpatch@us.ibm.com

The cpu_2_node[] array for i386 is initialized to all 0's, meaning that
until modified at CPU bring-up, all CPUs are mapped to node 0.

When CPUs are brought online, they are mapped to the appropriate node by
various mechanisms, depending on the underlying hardware.

When we unmap CPUs (hotplug time), we should return the mapping for the CPU
that is going away to its original state, ie: 0.

When this code was initially submitted, the misguided poster (me) made the
mistake of putting a -1 in the cpu_2_node[] array for the CPU going away.

This patch fixes this mistake, and allows code to get a valid node number
for all valid CPU numbers.  This is important, because most (if not all)
callers do not error check the value returned by the cpu_to_node() macro,
and they should not have to.  The API specifies that a valid node number be
returned for any valid CPU number.
parent 3a2d85ea
......@@ -522,7 +522,7 @@ static inline void unmap_cpu_to_node(int cpu)
printk("Unmapping cpu %d from all nodes\n", cpu);
for (node = 0; node < MAX_NUMNODES; node ++)
cpu_clear(cpu, node_2_cpu_mask[node]);
cpu_2_node[cpu] = -1;
cpu_2_node[cpu] = 0;
}
#else /* !CONFIG_NUMA */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment