Do not use kmalloc() but kmem_cache_alloc() for the allocation of the kmem_cache structures in slub. Acked-by: David Rientjes <rientjes@xxxxxxxxxx> Signed-off-by: Christoph Lameter <cl@xxxxxxxxx> Index: linux-2.6/mm/slub.c =================================================================== --- linux-2.6.orig/mm/slub.c 2012-08-03 09:01:06.650720492 -0500 +++ linux-2.6/mm/slub.c 2012-08-03 09:01:23.583012476 -0500 @@ -213,7 +213,7 @@ static inline int sysfs_slab_alias(struc static inline void sysfs_slab_remove(struct kmem_cache *s) { kfree(s->name); - kfree(s); + kmem_cache_free(kmem_cache, s); } #endif @@ -3962,7 +3962,7 @@ struct kmem_cache *__kmem_cache_create(c 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)) { @@ -3979,7 +3979,7 @@ struct kmem_cache *__kmem_cache_create(c list_del(&s->list); kmem_cache_close(s); } - kfree(s); + kmem_cache_free(kmem_cache, s); } kfree(n); return NULL; @@ -5217,7 +5217,7 @@ static void kmem_cache_release(struct ko 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 = { -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>