--- mm/slub.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) Index: linux-2.6/mm/slub.c =================================================================== --- linux-2.6.orig/mm/slub.c 2008-06-01 21:00:57.545114758 -0700 +++ linux-2.6/mm/slub.c 2008-06-01 21:01:17.076709048 -0700 @@ -1554,7 +1554,8 @@ static void *__slab_alloc(struct kmem_ca if (unlikely(!node_match(c, node))) goto another_slab; - stat(c, ALLOC_REFILL); + if (c->page->freelist) + stat(c, ALLOC_REFILL); load_freelist: object = c->page->freelist;