1 From 7f6b8876c7e66b0d15af134e2a5b87e55514eb6d Mon Sep 17 00:00:00 2001
2 Message-Id: <200611030607.kA367ECC010756@shell0.pdx.osdl.net>
3 From: Daniel Yeisley <dan.yeisley@unisys.com>
4 Date: Thu, 2 Nov 2006 22:07:14 -0800
5 Subject: init_reap_node() initialization fix
7 It looks like there is a bug in init_reap_node() in slab.c that can cause
8 multiple oops's on certain ES7000 configurations. The variable reap_node
9 is defined per cpu, but only initialized on a single CPU. This causes an
10 oops in next_reap_node() when __get_cpu_var(reap_node) returns the wrong
13 Signed-off-by: Dan Yeisley <dan.yeisley@unisys.com>
14 Cc: Andi Kleen <ak@suse.de>
15 Acked-by: Christoph Lameter <clameter@engr.sgi.com>
16 Cc: Pekka Enberg <penberg@cs.helsinki.fi>
17 Cc: Manfred Spraul <manfred@colorfullife.com>
18 Cc: <stable@kernel.org>
19 Signed-off-by: Andrew Morton <akpm@osdl.org>
20 Signed-off-by: Linus Torvalds <torvalds@osdl.org>
21 Signed-off-by: Chris Wright <chrisw@sous-sol.org>
24 1 file changed, 1 insertion(+), 1 deletion(-)
26 --- linux-2.6.18.2.orig/mm/slab.c
27 +++ linux-2.6.18.2/mm/slab.c
28 @@ -867,7 +867,7 @@ static void init_reap_node(int cpu)
29 if (node == MAX_NUMNODES)
30 node = first_node(node_online_map);
32 - __get_cpu_var(reap_node) = node;
33 + per_cpu(reap_node, cpu) = node;
36 static void next_reap_node(void)