On Wed, 23 Apr 2008, Christoph Lameter wrote: > We should have returned from the function and not printed this message. If > we somehow skipped the test for !fault then end could have wrapped around > which gets us to 4GB. Aah, looks like it's just a silly bug in slab_fix(). If this looks ok to Christoph, can you re-test with this patch applied Zdenek? That way we'll actually know where SLUB expected to see POISON_INUSE. Signed-off-by: Pekka Enberg <penberg@xxxxxxxxxxxxxx> --- diff --git a/mm/slub.c b/mm/slub.c index 7f8aaa2..dac50e3 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -456,6 +456,15 @@ static void print_page_info(struct page *page) } +static void __slab_bug(struct kmem_cache *s, char *buf) +{ + printk(KERN_ERR "========================================" + "=====================================\n"); + printk(KERN_ERR "BUG %s: %s\n", s->name, buf); + printk(KERN_ERR "----------------------------------------" + "-------------------------------------\n\n"); +} + static void slab_bug(struct kmem_cache *s, char *fmt, ...) { va_list args; @@ -464,11 +473,7 @@ static void slab_bug(struct kmem_cache *s, char *fmt, ...) va_start(args, fmt); vsnprintf(buf, sizeof(buf), fmt, args); va_end(args); - printk(KERN_ERR "========================================" - "=====================================\n"); - printk(KERN_ERR "BUG %s: %s\n", s->name, buf); - printk(KERN_ERR "----------------------------------------" - "-------------------------------------\n\n"); + __slab_bug(s, buf); } static void slab_fix(struct kmem_cache *s, char *fmt, ...) @@ -533,7 +538,7 @@ static void slab_err(struct kmem_cache *s, struct page *page, char *fmt, ...) va_start(args, fmt); vsnprintf(buf, sizeof(buf), fmt, args); va_end(args); - slab_bug(s, fmt); + __slab_bug(s, buf); print_page_info(page); dump_stack(); } -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html