diff options
| author | Andrew Morton <akpm@osdl.org> | 2003-07-17 19:26:56 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.osdl.org> | 2003-07-17 19:26:56 -0700 |
| commit | 5808e76e2a71f1539ba6fe6f16094349b22cb254 (patch) | |
| tree | 758623ee694aa4450a0ea816384d63feef43e065 | |
| parent | 234ed735322f8ecf9764fb1fa8a2f6d230985321 (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.c | 8 |
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) { |
