Conditionally calling kfree()/vfree() can be replaced by a call to kvfree() which handles both kmalloced memory and vmalloced memory. The Coccinelle semantic patch used to make the change is as follows: //<smpl> @@ expression a; @@ - if(...) { vfree(a); } - else { kfree(a); } + kvfree(a); @@ expression a; @@ - if(...) { kfree(a); } - else { vfree(a); } + kvfree(a); // </smpl> Signed-off-by: Amitoj Kaur Chawla <amitoj1606@xxxxxxxxx> --- drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css.c b/drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css.c index 73c7658..1b0708f 100644 --- a/drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css.c +++ b/drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css.c @@ -2029,10 +2029,7 @@ void *sh_css_calloc(size_t N, size_t size) void sh_css_free(void *ptr) { - if (is_vmalloc_addr(ptr)) - vfree(ptr); - else - kfree(ptr); + kvfree(ptr); } /* For Acceleration API: Flush FW (shared buffer pointer) arguments */ -- 2.7.4