Index: linux-2.6/mm/slub.c =================================================================== --- linux-2.6.orig/mm/slub.c 2007-06-08 20:43:30.000000000 -0700 +++ linux-2.6/mm/slub.c 2007-06-15 13:32:23.000000000 -0700 @@ -1845,14 +1845,14 @@ if (slab_state == DOWN) { n = early_kmem_cache_node_alloc(gfpflags, node); - continue; - } - n = kmem_cache_alloc_node(kmalloc_caches, + } else { + n = kmem_cache_alloc_node(kmalloc_caches, gfpflags, node); - if (!n) { - free_kmem_cache_nodes(s); - return 0; + if (!n) { + free_kmem_cache_nodes(s); + return 0; + } } }