summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2003-07-17 19:26:56 -0700
committerLinus Torvalds <torvalds@home.osdl.org>2003-07-17 19:26:56 -0700
commit5808e76e2a71f1539ba6fe6f16094349b22cb254 (patch)
tree758623ee694aa4450a0ea816384d63feef43e065
parent234ed735322f8ecf9764fb1fa8a2f6d230985321 (diff)
[PATCH] slab: print stuff when the wrong cache is used
From: Manfred Spraul <manfred@colorfullife.com> Some extra diagnostics when someone passes the wrong object type into kmem_cache_free(). To help some bug which Manfred is chasing.
-rw-r--r--mm/slab.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/mm/slab.c b/mm/slab.c
index 4576d24523c0..f86bb9620c29 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -1628,7 +1628,13 @@ static inline void *cache_free_debugcheck (kmem_cache_t * cachep, void * objp, v
kfree_debugcheck(objp);
page = virt_to_page(objp);
- BUG_ON(GET_PAGE_CACHE(page) != cachep);
+ if (GET_PAGE_CACHE(page) != cachep) {
+ printk(KERN_ERR "mismatch in kmem_cache_free: expected cache %p, got %p\n",
+ GET_PAGE_CACHE(page),cachep);
+ printk(KERN_ERR "%p is %s.\n", cachep, cachep->name);
+ printk(KERN_ERR "%p is %s.\n", GET_PAGE_CACHE(page), GET_PAGE_CACHE(page)->name);
+ WARN_ON(1);
+ }
slabp = GET_PAGE_SLAB(page);
if (cachep->flags & SLAB_STORE_USER) {