aboutsummaryrefslogtreecommitdiffstats
path: root/mm/slab.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/slab.c')
-rw-r--r--mm/slab.c20
1 files changed, 2 insertions, 18 deletions
diff --git a/mm/slab.c b/mm/slab.c
index 2a3cbd6e675d..a877d6f3d687 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -116,8 +116,7 @@
116#include <asm/page.h> 116#include <asm/page.h>
117 117
118/* 118/*
119 * DEBUG - 1 for kmem_cache_create() to honour; SLAB_DEBUG_INITIAL, 119 * DEBUG - 1 for kmem_cache_create() to honour; SLAB_RED_ZONE & SLAB_POISON.
120 * SLAB_RED_ZONE & SLAB_POISON.
121 * 0 for faster, smaller code (especially in the critical paths). 120 * 0 for faster, smaller code (especially in the critical paths).
122 * 121 *
123 * STATS - 1 to collect stats for /proc/slabinfo. 122 * STATS - 1 to collect stats for /proc/slabinfo.
@@ -172,7 +171,7 @@
172 171
173/* Legal flag mask for kmem_cache_create(). */ 172/* Legal flag mask for kmem_cache_create(). */
174#if DEBUG 173#if DEBUG
175# define CREATE_MASK (SLAB_DEBUG_INITIAL | SLAB_RED_ZONE | \ 174# define CREATE_MASK (SLAB_RED_ZONE | \
176 SLAB_POISON | SLAB_HWCACHE_ALIGN | \ 175 SLAB_POISON | SLAB_HWCACHE_ALIGN | \
177 SLAB_CACHE_DMA | \ 176 SLAB_CACHE_DMA | \
178 SLAB_STORE_USER | \ 177 SLAB_STORE_USER | \
@@ -2184,12 +2183,6 @@ kmem_cache_create (const char *name, size_t size, size_t align,
2184 2183
2185#if DEBUG 2184#if DEBUG
2186 WARN_ON(strchr(name, ' ')); /* It confuses parsers */ 2185 WARN_ON(strchr(name, ' ')); /* It confuses parsers */
2187 if ((flags & SLAB_DEBUG_INITIAL) && !ctor) {
2188 /* No constructor, but inital state check requested */
2189 printk(KERN_ERR "%s: No con, but init state check "
2190 "requested - %s\n", __FUNCTION__, name);
2191 flags &= ~SLAB_DEBUG_INITIAL;
2192 }
2193#if FORCED_DEBUG 2186#if FORCED_DEBUG
2194 /* 2187 /*
2195 * Enable redzoning and last user accounting, except for caches with 2188 * Enable redzoning and last user accounting, except for caches with
@@ -2895,15 +2888,6 @@ static void *cache_free_debugcheck(struct kmem_cache *cachep, void *objp,
2895 BUG_ON(objnr >= cachep->num); 2888 BUG_ON(objnr >= cachep->num);
2896 BUG_ON(objp != index_to_obj(cachep, slabp, objnr)); 2889 BUG_ON(objp != index_to_obj(cachep, slabp, objnr));
2897 2890
2898 if (cachep->flags & SLAB_DEBUG_INITIAL) {
2899 /*
2900 * Need to call the slab's constructor so the caller can
2901 * perform a verify of its state (debugging). Called without
2902 * the cache-lock held.
2903 */
2904 cachep->ctor(objp + obj_offset(cachep),
2905 cachep, SLAB_CTOR_CONSTRUCTOR | SLAB_CTOR_VERIFY);
2906 }
2907 if (cachep->flags & SLAB_POISON && cachep->dtor) { 2891 if (cachep->flags & SLAB_POISON && cachep->dtor) {
2908 /* we want to cache poison the object, 2892 /* we want to cache poison the object,
2909 * call the destruction callback 2893 * call the destruction callback