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