Skip to content

Commit

Permalink
mm/sl[aou]b: Move freeing of kmem_cache structure to common code
Browse files Browse the repository at this point in the history
The freeing action is basically the same in all slab allocators.
Move to the common kmem_cache_destroy() function.

Reviewed-by: Glauber Costa <glommer@parallels.com>
Reviewed-by: Joonsoo Kim <js1304@gmail.com>
Signed-off-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
  • Loading branch information
Christoph Lameter authored and penberg committed Sep 5, 2012
1 parent 9b030cb commit 8f4c765
Show file tree
Hide file tree
Showing 4 changed files with 1 addition and 5 deletions.
1 change: 0 additions & 1 deletion mm/slab.c
Original file line number Diff line number Diff line change
Expand Up @@ -2225,7 +2225,6 @@ void __kmem_cache_destroy(struct kmem_cache *cachep)
kfree(l3);
}
}
kmem_cache_free(kmem_cache, cachep);
}


Expand Down
1 change: 1 addition & 0 deletions mm/slab_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ void kmem_cache_destroy(struct kmem_cache *s)
rcu_barrier();

__kmem_cache_destroy(s);
kmem_cache_free(kmem_cache, s);
} else {
list_add(&s->list, &slab_caches);
printk(KERN_ERR "kmem_cache_destroy %s: Slab cache still has objects\n",
Expand Down
2 changes: 0 additions & 2 deletions mm/slob.c
Original file line number Diff line number Diff line change
Expand Up @@ -540,8 +540,6 @@ struct kmem_cache *__kmem_cache_create(const char *name, size_t size,

void __kmem_cache_destroy(struct kmem_cache *c)
{
kmemleak_free(c);
slob_free(c, sizeof(struct kmem_cache));
}

void *kmem_cache_alloc_node(struct kmem_cache *c, gfp_t flags, int node)
Expand Down
2 changes: 0 additions & 2 deletions mm/slub.c
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,6 @@ 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);
kmem_cache_free(kmem_cache, s);
}

#endif
Expand Down Expand Up @@ -5206,7 +5205,6 @@ static void kmem_cache_release(struct kobject *kobj)
struct kmem_cache *s = to_slab(kobj);

kfree(s->name);
kmem_cache_free(kmem_cache, s);
}

static const struct sysfs_ops slab_sysfs_ops = {
Expand Down

0 comments on commit 8f4c765

Please sign in to comment.