Index: linux-2.6.21-rc2/mm/slub.c =================================================================== --- linux-2.6.21-rc2.orig/mm/slub.c 2007-02-28 17:19:42.000000000 -0800 +++ linux-2.6.21-rc2/mm/slub.c 2007-02-28 17:19:43.000000000 -0800 @@ -211,7 +211,7 @@ static void print_trailer(struct kmem_ca unsigned int off; if (s->offset) - off = s->offset + sizeof(void *); + off = (s->offset + 1) * sizeof(void *); else off = s->inuse; @@ -219,7 +219,8 @@ static void print_trailer(struct kmem_ca print_section("Redzone", p + s->objsize, s->inuse - s->objsize); - printk(KERN_ERR "FreePointer %p: %p\n", p + s->offset, + printk(KERN_ERR "FreePointer %p: %p\n", + p + s->offset * sizeof(void *), get_freepointer(s, p)); if (s->flags & SLAB_STORE_USER) { @@ -399,10 +400,10 @@ static int check_slab(struct kmem_cache return 0; } if (page->offset != s->offset) { - printk(KERN_CRIT "SLUB: %s Corrupted offset %u in slab @%p" + printk(KERN_CRIT "SLUB: %s Corrupted offset %lu in slab @%p" " flags=%lx mapping=%p count=%d\n", - s->name, page->offset, page, page->flags, - page->mapping, page_count(page)); + s->name, page->offset * sizeof(void *), page, + page->flags, page->mapping, page_count(page)); return 0; } if (page->inuse > s->objects) { @@ -1417,9 +1418,9 @@ int kmem_cache_open(struct kmem_cache *s error: if (flags & SLAB_PANIC) panic("Cannot create slab %s size=%lu realsize=%u " - "order=%u offset=%u flags=%lx\n", + "order=%u offset=%lu flags=%lx\n", s->name, (unsigned long)size, s->size, s->order, - s->offset, flags); + s->offset * sizeof(void *), flags); return 0; } EXPORT_SYMBOL(kmem_cache_open);