]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
init_reap_node() initialization fix
authorDan Yeisley <dan.yeisley@unisys.com>
Thu, 8 Mar 2007 07:01:53 +0000 (08:01 +0100)
committerAdrian Bunk <bunk@stusta.de>
Thu, 8 Mar 2007 07:01:53 +0000 (08:01 +0100)
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>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
mm/slab.c

index d0bd7f07ab041d3d7da06c5cec610035c3058b33..c58d3b81be0f5c1ff5583fde37f45028c10e24d9 100644 (file)
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -806,7 +806,7 @@ static void init_reap_node(int cpu)
        if (node == MAX_NUMNODES)
                node = 0;
 
-       __get_cpu_var(reap_node) = node;
+       per_cpu(reap_node, cpu) = node;
 }
 
 static void next_reap_node(void)