2003-11-07 23:07:42

by Margit Schubert-While

[permalink] [raw]
Subject: 2.4.23pre mm/slab.c error

At lines 1786 to 1793 in mm/slab.c we have :
while (p != &searchp->slabs_free) {
#if DEBUG
slabp = list_entry(p, slab_t, list);

if (slabp->inuse)
BUG();
#endif
full_free++;

I think the "slabp =" should be above the "#if DEBUG".
Or ?

Margit



2003-11-09 00:31:09

by Robert Love

[permalink] [raw]
Subject: Re: 2.4.23pre mm/slab.c error

On Fri, 2003-11-07 at 03:36, Margit Schubert-While wrote:
> At lines 1786 to 1793 in mm/slab.c we have :
> while (p != &searchp->slabs_free) {
> #if DEBUG
> slabp = list_entry(p, slab_t, list);
>
> if (slabp->inuse)
> BUG();
> #endif
> full_free++;
>
> I think the "slabp =" should be above the "#if DEBUG".
> Or ?

Looks to me like nothing else uses slabp here but that if, so it is fine
to move it inside the DEBUG. It was outside the DEBUG in 2.4.22 and
earlier kernels, but moving it inside seems a safe optimization to me.

slabp is not used again until line ~1840, where it is given a new value.

Robert Love