slub: Force no inlining of debug functions

Compiler folds the debgging functions into the critical paths.
Avoid that by adding noinline to the functions that check for
problems.

Acked-by: David Rientjes <rientjes@google.com>
Signed-off-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
This commit is contained in:
Christoph Lameter 2010-08-20 12:37:12 -05:00 committed by Pekka Enberg
parent 899611ee7d
commit 1537066c69

View file

@ -862,7 +862,7 @@ static void setup_object_debug(struct kmem_cache *s, struct page *page,
init_tracking(s, object); init_tracking(s, object);
} }
static int alloc_debug_processing(struct kmem_cache *s, struct page *page, static noinline int alloc_debug_processing(struct kmem_cache *s, struct page *page,
void *object, unsigned long addr) void *object, unsigned long addr)
{ {
if (!check_slab(s, page)) if (!check_slab(s, page))
@ -902,8 +902,8 @@ bad:
return 0; return 0;
} }
static int free_debug_processing(struct kmem_cache *s, struct page *page, static noinline int free_debug_processing(struct kmem_cache *s,
void *object, unsigned long addr) struct page *page, void *object, unsigned long addr)
{ {
if (!check_slab(s, page)) if (!check_slab(s, page))
goto fail; goto fail;