Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ae20bfda authored by Christoph Lameter's avatar Christoph Lameter
Browse files

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
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -2610,19 +2610,17 @@ size_t ksize(const void *object)
	struct page *page;
	struct kmem_cache *s;

	BUG_ON(!object);
	if (unlikely(object == ZERO_SIZE_PTR))
		return 0;

	page = virt_to_head_page(object);
	BUG_ON(!page);

	if (unlikely(!PageSlab(page)))
		return PAGE_SIZE << compound_order(page);

	s = page->slab;
	BUG_ON(!s);

#ifdef CONFIG_SLUB_DEBUG
	/*
	 * Debugging requires use of the padding between object
	 * and whatever may come after it.
@@ -2630,6 +2628,7 @@ size_t ksize(const void *object)
	if (s->flags & (SLAB_RED_ZONE | SLAB_POISON))
		return s->objsize;

#endif
	/*
	 * If we have the need to store the freelist pointer
	 * back there or track user information then we can
@@ -2637,7 +2636,6 @@ size_t ksize(const void *object)
	 */
	if (s->flags & (SLAB_DESTROY_BY_RCU | SLAB_STORE_USER))
		return s->inuse;

	/*
	 * Else we can use all the padding etc for the allocation
	 */