Re: [PATCH] slab: ensure cache_alloc_refill terminates

From: Christoph Lameter
Date: Tue Feb 20 2007 - 00:05:45 EST


On Mon, 19 Feb 2007, Pekka J Enberg wrote:

> If slab->inuse is corrupted, cache_alloc_refill can enter an infinite
> loop as detailed by Michael Richardson in the following post:
> <http://lkml.org/lkml/2007/2/16/292>.

We have seen that corruption too.

> check_spinlock_acquired(cachep);
> +
> + /*
> + * The slab was either on partial or free list so
> + * there must be at least one object available for
> + * allocation.
> + */
> + BUG_ON(slabp->inuse >= cachep->num);

slabp->inuse is an integer and we have seen it become -1. The proposed
test will not catch those cases.
-
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/