diff options
Diffstat (limited to 'mm/slab.c')
-rw-r--r-- | mm/slab.c | 20 |
1 files changed, 2 insertions, 18 deletions
@@ -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 |