From: Christoph Lameter Fix two issues in the patch as suggested by Kiran: 1. next_node() cannot return a node number >MAX_NUMNODES. So use == 2. Node online map should not be empty during bootup so we can skip the code that I added to deal with that situation. Signed-off-by: Christoph Lameter Signed-off-by: Andrew Morton --- mm/slab.c | 11 ++--------- 1 files changed, 2 insertions(+), 9 deletions(-) diff -puN mm/slab.c~slab-node-rotor-for-freeing-alien-caches-and-remote-per-cpu-pages-fix mm/slab.c --- devel/mm/slab.c~slab-node-rotor-for-freeing-alien-caches-and-remote-per-cpu-pages-fix 2006-02-23 17:19:00.000000000 -0800 +++ devel-akpm/mm/slab.c 2006-02-23 17:19:00.000000000 -0800 @@ -825,7 +825,7 @@ static void init_reap_node(int cpu) int node; node = next_node(cpu_to_node(cpu), node_online_map); - if (node >= MAX_NUMNODES) + if (node == MAX_NUMNODES) node = 0; __get_cpu_var(reap_node) = node; @@ -842,15 +842,8 @@ static void next_reap_node(void) drain_node_pages(node); node = next_node(node, node_online_map); - if (unlikely(node >= MAX_NUMNODES)) { + if (unlikely(node >= MAX_NUMNODES)) node = first_node(node_online_map); - /* - * If the node_online_map is empty (early boot) then - * only use node zero. - */ - if (node >= MAX_NUMNODES) - node = 0; - } __get_cpu_var(reap_node) = node; } _