Commit 6e40e730 authored by Pekka Enberg's avatar Pekka Enberg Committed by Linus Torvalds

[PATCH] slab: remove broken PageSlab check from kfree_debugcheck

The PageSlab debug check in kfree_debugcheck() is broken for compound
pages.  It is also redundant as we already do BUG_ON for non-slab pages in
page_get_cache() and page_get_slab() which are always called before we free
any actual objects.
Signed-off-by: default avatarPekka Enberg <penberg@cs.helsinki.fi>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 66efc5a7
...@@ -2814,19 +2814,11 @@ static int cache_grow(struct kmem_cache *cachep, ...@@ -2814,19 +2814,11 @@ static int cache_grow(struct kmem_cache *cachep,
*/ */
static void kfree_debugcheck(const void *objp) static void kfree_debugcheck(const void *objp)
{ {
struct page *page;
if (!virt_addr_valid(objp)) { if (!virt_addr_valid(objp)) {
printk(KERN_ERR "kfree_debugcheck: out of range ptr %lxh.\n", printk(KERN_ERR "kfree_debugcheck: out of range ptr %lxh.\n",
(unsigned long)objp); (unsigned long)objp);
BUG(); BUG();
} }
page = virt_to_page(objp);
if (!PageSlab(page)) {
printk(KERN_ERR "kfree_debugcheck: bad ptr %lxh.\n",
(unsigned long)objp);
BUG();
}
} }
static inline void verify_redzone_free(struct kmem_cache *cache, void *obj) static inline void verify_redzone_free(struct kmem_cache *cache, void *obj)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment