diff --git a/[refs] b/[refs] index 2d193008b4dd..6e562fab30d7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: dc1fb7f43636754a4d06f7bdb8ea3269a7d71d6d +refs/heads/master: 8dc16c6c04b1a82d00a8464ccc08e1fe17d0ff82 diff --git a/trunk/mm/slub.c b/trunk/mm/slub.c index 301360bc00c6..c952fac112e8 100644 --- a/trunk/mm/slub.c +++ b/trunk/mm/slub.c @@ -2057,10 +2057,9 @@ static void __slab_free(struct kmem_cache *s, struct page *page, slab_lock(page); 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; set_freepointer(s, object, prior); page->freelist = object; @@ -2104,12 +2103,6 @@ static void __slab_free(struct kmem_cache *s, struct page *page, #endif stat(s, FREE_SLAB); discard_slab(s, page); - return; - -debug: - if (!free_debug_processing(s, page, x, addr)) - goto out_unlock; - goto checks_ok; } /*