2011-07-22 01:01:32 +00:00
|
|
|
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
|
|
|
|
index 4e8985a..70d0853 100644
|
|
|
|
--- a/mm/page_alloc.c
|
|
|
|
+++ b/mm/page_alloc.c
|
|
|
|
@@ -318,6 +318,7 @@ static void bad_page(struct page *page)
|
|
|
|
current->comm, page_to_pfn(page));
|
|
|
|
dump_page(page);
|
2010-07-29 23:46:31 +00:00
|
|
|
|
2011-07-22 01:01:32 +00:00
|
|
|
+ print_modules();
|
|
|
|
dump_stack();
|
|
|
|
out:
|
|
|
|
/* Leave bad fields for debug, except PageBuddy could make trouble */
|
2010-07-29 23:46:31 +00:00
|
|
|
diff --git a/mm/slab.c b/mm/slab.c
|
2011-07-22 01:01:32 +00:00
|
|
|
index d96e223..6f8905b 100644
|
2010-07-29 23:46:31 +00:00
|
|
|
--- a/mm/slab.c
|
|
|
|
+++ b/mm/slab.c
|
2011-07-22 01:01:32 +00:00
|
|
|
@@ -1886,8 +1886,8 @@ static void check_poison_obj(struct kmem_cache *cachep, void *objp)
|
2010-07-29 23:46:31 +00:00
|
|
|
/* 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 */
|
2011-07-22 01:01:32 +00:00
|
|
|
@@ -2985,8 +2985,8 @@ static void check_slabp(struct kmem_cache *cachep, struct slab *slabp)
|
2010-07-29 23:46:31 +00:00
|
|
|
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
|
2011-07-22 01:01:32 +00:00
|
|
|
index 35f351f..e7ccb39 100644
|
2010-07-29 23:46:31 +00:00
|
|
|
--- a/mm/slub.c
|
|
|
|
+++ b/mm/slub.c
|
2011-07-22 01:01:32 +00:00
|
|
|
@@ -472,7 +472,7 @@ static void slab_bug(struct kmem_cache *s, char *fmt, ...)
|
2010-07-29 23:46:31 +00:00
|
|
|
va_end(args);
|
|
|
|
printk(KERN_ERR "========================================"
|
|
|
|
"=====================================\n");
|
|
|
|
- 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");
|
|
|
|
}
|