| diff --git a/mm/page_alloc.c b/mm/page_alloc.c |
| index 4e8985a..70d0853 100644 |
| |
| |
| @@ -318,6 +318,7 @@ static void bad_page(struct page *page) |
| current->comm, page_to_pfn(page)); |
| dump_page(page); |
| |
| + print_modules(); |
| dump_stack(); |
| out: |
| /* Leave bad fields for debug, except PageBuddy could make trouble */ |
| diff --git a/mm/slab.c b/mm/slab.c |
| index d96e223..6f8905b 100644 |
| |
| |
| @@ -1886,8 +1886,8 @@ static void check_poison_obj(struct kmem_cache *cachep, void *objp) |
| /* Print header */ |
| if (lines == 0) { |
| printk(KERN_ERR |
| - "Slab corruption: %s start=%p, len=%d\n", |
| - cachep->name, realobj, size); |
| + "Slab corruption (%s): %s start=%p, len=%d\n", |
| + print_tainted(), cachep->name, realobj, size); |
| print_objinfo(cachep, objp, 0); |
| } |
| /* Hexdump the affected line */ |
| @@ -2985,8 +2985,8 @@ static void check_slabp(struct kmem_cache *cachep, struct slab *slabp) |
| if (entries != cachep->num - slabp->inuse) { |
| bad: |
| printk(KERN_ERR "slab: Internal list corruption detected in " |
| - "cache '%s'(%d), slabp %p(%d). Hexdump:\n", |
| - cachep->name, cachep->num, slabp, slabp->inuse); |
| + "cache '%s'(%d), slabp %p(%d). Tainted(%s). Hexdump:\n", |
| + cachep->name, cachep->num, slabp, slabp->inuse, print_tainted()); |
| for (i = 0; |
| i < sizeof(*slabp) + cachep->num * sizeof(kmem_bufctl_t); |
| i++) { |
| diff --git a/mm/slub.c b/mm/slub.c |
| index 35f351f..e7ccb39 100644 |
| |
| |
| @@ -472,7 +472,7 @@ static void slab_bug(struct kmem_cache *s, char *fmt, ...) |
| va_end(args); |
| printk(KERN_ERR " |
| " |
| - printk(KERN_ERR "BUG %s: %s\n", s->name, buf); |
| + printk(KERN_ERR "BUG %s (%s): %s\n", s->name, print_tainted(), buf); |
| printk(KERN_ERR "----------------------------------------" |
| "-------------------------------------\n\n"); |
| } |