]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/2.6.18.3/init_reap_node-initialization-fix.patch
5.0-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 2.6.18.3 / init_reap_node-initialization-fix.patch
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
6
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
11 value. Fix is below.
12
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>
22 ---
23 mm/slab.c | 2 +-
24 1 file changed, 1 insertion(+), 1 deletion(-)
25
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);
31
32 - __get_cpu_var(reap_node) = node;
33 + per_cpu(reap_node, cpu) = node;
34 }
35
36 static void next_reap_node(void)