Commit ae20bfda authored by Christoph Lameter's avatar Christoph Lameter

slub: Remove BUG_ON() from ksize and omit checks for !SLUB_DEBUG

The BUG_ONs are useless since the pointer derefs will lead to
NULL deref errors anyways. Some of the checks are not necessary
if no debugging is possible.
Signed-off-by: default avatarChristoph Lameter <clameter@sgi.com>
parent 27d9e4e9
...@@ -2610,19 +2610,17 @@ size_t ksize(const void *object) ...@@ -2610,19 +2610,17 @@ size_t ksize(const void *object)
struct page *page; struct page *page;
struct kmem_cache *s; struct kmem_cache *s;
BUG_ON(!object);
if (unlikely(object == ZERO_SIZE_PTR)) if (unlikely(object == ZERO_SIZE_PTR))
return 0; return 0;
page = virt_to_head_page(object); page = virt_to_head_page(object);
BUG_ON(!page);
if (unlikely(!PageSlab(page))) if (unlikely(!PageSlab(page)))
return PAGE_SIZE << compound_order(page); return PAGE_SIZE << compound_order(page);
s = page->slab; s = page->slab;
BUG_ON(!s);
#ifdef CONFIG_SLUB_DEBUG
/* /*
* Debugging requires use of the padding between object * Debugging requires use of the padding between object
* and whatever may come after it. * and whatever may come after it.
...@@ -2630,6 +2628,7 @@ size_t ksize(const void *object) ...@@ -2630,6 +2628,7 @@ size_t ksize(const void *object)
if (s->flags & (SLAB_RED_ZONE | SLAB_POISON)) if (s->flags & (SLAB_RED_ZONE | SLAB_POISON))
return s->objsize; return s->objsize;
#endif
/* /*
* If we have the need to store the freelist pointer * If we have the need to store the freelist pointer
* back there or track user information then we can * back there or track user information then we can
...@@ -2637,7 +2636,6 @@ size_t ksize(const void *object) ...@@ -2637,7 +2636,6 @@ size_t ksize(const void *object)
*/ */
if (s->flags & (SLAB_DESTROY_BY_RCU | SLAB_STORE_USER)) if (s->flags & (SLAB_DESTROY_BY_RCU | SLAB_STORE_USER))
return s->inuse; return s->inuse;
/* /*
* Else we can use all the padding etc for the allocation * Else we can use all the padding etc for the allocation
*/ */
......
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