summaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorChristoph Lameter <cl@linux.com>2012-09-05 01:06:14 +0200
committerPekka Enberg <penberg@kernel.org>2012-09-05 11:00:35 +0200
commit208c4358dc4a8f0fe99e49eb8d21a869b01e7d34 (patch)
tree96720e634f45fb09dde6098fbe37c718413c464b /mm
parentmm/slub: Add debugging to verify correct cache use on kmem_cache_free() (diff)
downloadlinux-208c4358dc4a8f0fe99e49eb8d21a869b01e7d34.tar.xz
linux-208c4358dc4a8f0fe99e49eb8d21a869b01e7d34.zip
mm/slub: Use kmem_cache for the kmem_cache structure
Do not use kmalloc() but kmem_cache_alloc() for the allocation of the kmem_cache structures in slub. Reviewed-by: Glauber Costa <glommer@parallels.com> Acked-by: David Rientjes <rientjes@google.com> Signed-off-by: Christoph Lameter <cl@linux.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/slub.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/mm/slub.c b/mm/slub.c
index 990592174340..c66908983218 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -213,7 +213,7 @@ static inline int sysfs_slab_alias(struct kmem_cache *s, const char *p)
static inline void sysfs_slab_remove(struct kmem_cache *s)
{
kfree(s->name);
- kfree(s);
+ kmem_cache_free(kmem_cache, s);
}
#endif
@@ -3969,7 +3969,7 @@ struct kmem_cache *__kmem_cache_create(const char *name, size_t size,
if (!n)
return NULL;
- s = kmalloc(kmem_size, GFP_KERNEL);
+ s = kmem_cache_alloc(kmem_cache, GFP_KERNEL);
if (s) {
if (kmem_cache_open(s, n,
size, align, flags, ctor)) {
@@ -3986,7 +3986,7 @@ struct kmem_cache *__kmem_cache_create(const char *name, size_t size,
list_del(&s->list);
kmem_cache_close(s);
}
- kfree(s);
+ kmem_cache_free(kmem_cache, s);
}
kfree(n);
return NULL;
@@ -5224,7 +5224,7 @@ static void kmem_cache_release(struct kobject *kobj)
struct kmem_cache *s = to_slab(kobj);
kfree(s->name);
- kfree(s);
+ kmem_cache_free(kmem_cache, s);
}
static const struct sysfs_ops slab_sysfs_ops = {