2015-02-09 05:28:44

by Vaishali Thakkar

[permalink] [raw]
Subject: [PATCH] mm/slab_common: Use kmem_cache_free

Here, free memory is allocated using kmem_cache_zalloc.
So, use kmem_cache_free instead of kfree.

This is done using Coccinelle and semantic patch used
is as follows:

@@
expression x,E,c;
@@

x = \(kmem_cache_alloc\|kmem_cache_zalloc\|kmem_cache_alloc_node\)(c,...)
... when != x = E
when != &x
?-kfree(x)
+kmem_cache_free(c,x)

Signed-off-by: Vaishali Thakkar <[email protected]>
---
mm/slab_common.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/slab_common.c b/mm/slab_common.c
index e03dd6f..67f182c 100644
--- a/mm/slab_common.c
+++ b/mm/slab_common.c
@@ -331,7 +331,7 @@ out:

out_free_cache:
memcg_free_cache_params(s);
- kfree(s);
+ kmem_cache_free(kmem_cache, s);
goto out;
}

--
1.9.1


Subject: Re: [PATCH] mm/slab_common: Use kmem_cache_free

On Mon, 9 Feb 2015, Vaishali Thakkar wrote:

> Here, free memory is allocated using kmem_cache_zalloc.
> So, use kmem_cache_free instead of kfree.

Acked-by: Christoph Lameter <[email protected]>

2015-02-10 21:51:38

by David Rientjes

[permalink] [raw]
Subject: Re: [PATCH] mm/slab_common: Use kmem_cache_free

On Mon, 9 Feb 2015, Vaishali Thakkar wrote:

> Here, free memory is allocated using kmem_cache_zalloc.
> So, use kmem_cache_free instead of kfree.
>
> This is done using Coccinelle and semantic patch used
> is as follows:
>
> @@
> expression x,E,c;
> @@
>
> x = \(kmem_cache_alloc\|kmem_cache_zalloc\|kmem_cache_alloc_node\)(c,...)
> ... when != x = E
> when != &x
> ?-kfree(x)
> +kmem_cache_free(c,x)
>
> Signed-off-by: Vaishali Thakkar <[email protected]>

Acked-by: David Rientjes <[email protected]>