|
@@ -2057,10 +2057,9 @@ static void __slab_free(struct kmem_cache *s, struct page *page,
|
|
slab_lock(page);
|
|
slab_lock(page);
|
|
stat(s, FREE_SLOWPATH);
|
|
stat(s, FREE_SLOWPATH);
|
|
|
|
|
|
- if (kmem_cache_debug(s))
|
|
|
|
- goto debug;
|
|
|
|
|
|
+ if (kmem_cache_debug(s) && !free_debug_processing(s, page, x, addr))
|
|
|
|
+ goto out_unlock;
|
|
|
|
|
|
-checks_ok:
|
|
|
|
prior = page->freelist;
|
|
prior = page->freelist;
|
|
set_freepointer(s, object, prior);
|
|
set_freepointer(s, object, prior);
|
|
page->freelist = object;
|
|
page->freelist = object;
|
|
@@ -2104,12 +2103,6 @@ slab_empty:
|
|
#endif
|
|
#endif
|
|
stat(s, FREE_SLAB);
|
|
stat(s, FREE_SLAB);
|
|
discard_slab(s, page);
|
|
discard_slab(s, page);
|
|
- return;
|
|
|
|
-
|
|
|
|
-debug:
|
|
|
|
- if (!free_debug_processing(s, page, x, addr))
|
|
|
|
- goto out_unlock;
|
|
|
|
- goto checks_ok;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
/*
|