Fix "check_slabp" printout size calculation
authorLinus Torvalds <torvalds@g5.osdl.org>
Mon, 6 Mar 2006 20:10:07 +0000 (12:10 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 6 Mar 2006 20:10:07 +0000 (12:10 -0800)
We want to use the "struct slab" size, not the size of the pointer to
same.  As it is, we'd not print out the last <n> entry pointers in the
slab (where <n> is ~10, depending on whether it's a 32-bit or 64-bit
kernel).

Gaah, that slab code was written by somebody who likes unreadable crud.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
mm/slab.c

index add05d808a4a6fe96823cf3a5899d1c9a5a3f95b..2b0b1519bb74f472cb8894d823c93763ace80b26 100644 (file)
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -2554,7 +2554,7 @@ static void check_slabp(struct kmem_cache *cachep, struct slab *slabp)
                       "slab: Internal list corruption detected in cache '%s'(%d), slabp %p(%d). Hexdump:\n",
                       cachep->name, cachep->num, slabp, slabp->inuse);
                for (i = 0;
-                    i < sizeof(slabp) + cachep->num * sizeof(kmem_bufctl_t);
+                    i < sizeof(*slabp) + cachep->num * sizeof(kmem_bufctl_t);
                     i++) {
                        if ((i % 16) == 0)
                                printk("\n%03x:", i);