aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Yeisley <dan.yeisley@unisys.com>2006-11-02 22:07:14 -0800
committerChris Wright <chrisw@sous-sol.org>2006-11-18 19:28:01 -0800
commit9bc1aba21be5de887e94770441fe2882455503c2 (patch)
tree8699609805f94fd8f976f11ae0634c4540e10791
parentae76e93b97d3d44a0fdb5d99b9202ae167c88b6a (diff)
[PATCH] init_reap_node() initialization fix
It looks like there is a bug in init_reap_node() in slab.c that can cause multiple oops's on certain ES7000 configurations. The variable reap_node is defined per cpu, but only initialized on a single CPU. This causes an oops in next_reap_node() when __get_cpu_var(reap_node) returns the wrong value. Fix is below. Signed-off-by: Dan Yeisley <dan.yeisley@unisys.com> Cc: Andi Kleen <ak@suse.de> Acked-by: Christoph Lameter <clameter@engr.sgi.com> Cc: Pekka Enberg <penberg@cs.helsinki.fi> Cc: Manfred Spraul <manfred@colorfullife.com> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Chris Wright <chrisw@sous-sol.org>
-rw-r--r--mm/slab.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/slab.c b/mm/slab.c
index 21ba0603570..0a942398a21 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -867,7 +867,7 @@ static void init_reap_node(int cpu)
if (node == MAX_NUMNODES)
node = first_node(node_online_map);
- __get_cpu_var(reap_node) = node;
+ per_cpu(reap_node, cpu) = node;
}
static void next_reap_node(void)