Re: [PATCH] SLUB: clear c->freelist in __slab_alloc()/load_freelist:/SlabDebug path

From: Pekka Enberg
Date: Tue May 13 2008 - 02:14:20 EST


On Mon, May 12, 2008 at 11:32 PM, Benny Halevy <bhalevy@xxxxxxxxxxx> wrote:
> In the __slab_alloc()/load_freelist:/SlabDebug(c->page) path we only
> use the object at the head of c->page->freelist
> and the tail goes back to c->page->freelist.
> We then set c->node = -1 to force __slab_alloc in next allocation.
> c->freelist therefore needs to be cleared as it is invalid at this point.
>
> @@ -1606,6 +1606,7 @@ debug:
> if (!alloc_debug_processing(s, c->page, object, addr))
> goto another_slab;
>
> + c->freelist = NULL;
> c->page->inuse++;
> c->page->freelist = object[c->offset];
> c->node = -1;

Makes sense. Christoph?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/