diff --git a/mm/slab.c b/mm/slab.c index 06236e4..77c00a0 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -219,6 +219,7 @@ typedef unsigned int kmem_bufctl_t; */ struct slab { struct list_head list; + unsigned long buh; unsigned long colouroff; void *s_mem; /* including colour offset */ unsigned int inuse; /* num of objs active in slab */ @@ -2943,7 +2944,18 @@ bad: i++) { if (i % 16 == 0) printk("\n%03x:", i); - printk(" %02x", ((unsigned char *)slabp)[i]); + printk(" %0x", ((unsigned char *)slabp)[i]); + } + printk("\n"); + if (!OFF_SLAB(cachep) && (cachep->flags & SLAB_RED_ZONE)) { + printk("redzone codes:\n"); + for (i = 0; i < cachep->num; i++) { + void *objp = index_to_obj(cachep, slabp, i); + + if (i % 2 == 0) + printk("\n%03x:", i); + printk("%llx/%llx ", *dbg_redzone1(cachep, objp), *dbg_redzone2(cachep, objp)); + } } printk("\n"); BUG();