linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Julia Lawall <julia.lawall@lip6.fr>
To: Himanshu Jha <himanshujha199640@gmail.com>
Cc: yamada.masahiro@socionext.com, Julia.Lawall@lip6.fr,
	Gilles Muller <Gilles.Muller@lip6.fr>,
	nicolas.palix@imag.fr, michal.lkml@markovi.net,
	cocci@systeme.lip6.fr, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Coccinelle: kzalloc-simple: Rename kzalloc-simple to zalloc-simple
Date: Sat, 13 Jan 2018 17:27:22 +0100 (CET)	[thread overview]
Message-ID: <alpine.DEB.2.20.1801131727091.3470@hadrien> (raw)
In-Reply-To: <1515859050-31764-1-git-send-email-himanshujha199640@gmail.com>



On Sat, 13 Jan 2018, Himanshu Jha wrote:

> Rename kzalloc-simple to zalloc-simple since now the rule is not
> specific to kzalloc function only, but also to many other zero memory
> allocating functions specified in the rule.
>
> Signed-off-by: Himanshu Jha <himanshujha199640@gmail.com>

Acked-by: Julia Lawall <julia.lawall@lip6.fr>

> ---
>  scripts/coccinelle/api/alloc/kzalloc-simple.cocci | 448 ----------------------
>  scripts/coccinelle/api/alloc/zalloc.cocci         | 448 ++++++++++++++++++++++
>  2 files changed, 448 insertions(+), 448 deletions(-)
>  delete mode 100644 scripts/coccinelle/api/alloc/kzalloc-simple.cocci
>  create mode 100644 scripts/coccinelle/api/alloc/zalloc.cocci
>
> diff --git a/scripts/coccinelle/api/alloc/kzalloc-simple.cocci b/scripts/coccinelle/api/alloc/kzalloc-simple.cocci
> deleted file mode 100644
> index 92b2091..0000000
> --- a/scripts/coccinelle/api/alloc/kzalloc-simple.cocci
> +++ /dev/null
> @@ -1,448 +0,0 @@
> -///
> -/// Use zeroing allocator rather than allocator followed by memset with 0
> -///
> -/// This considers some simple cases that are common and easy to validate
> -/// Note in particular that there are no ...s in the rule, so all of the
> -/// matched code has to be contiguous
> -///
> -// Confidence: High
> -// Copyright: (C) 2009-2010 Julia Lawall, Nicolas Palix, DIKU.  GPLv2.
> -// Copyright: (C) 2009-2010 Gilles Muller, INRIA/LiP6.  GPLv2.
> -// Copyright: (C) 2017 Himanshu Jha GPLv2.
> -// URL: http://coccinelle.lip6.fr/rules/kzalloc.html
> -// Options: --no-includes --include-headers
> -//
> -// Keywords: kmalloc, kzalloc
> -// Version min: < 2.6.12 kmalloc
> -// Version min:   2.6.14 kzalloc
> -//
> -
> -virtual context
> -virtual patch
> -virtual org
> -virtual report
> -
> -//----------------------------------------------------------
> -//  For context mode
> -//----------------------------------------------------------
> -
> -@depends on context@
> -type T, T2;
> -expression x;
> -expression E1;
> -statement S;
> -@@
> -
> -* x = (T)\(kmalloc(E1, ...)\|vmalloc(E1)\|dma_alloc_coherent(...,E1,...)\|
> -  kmalloc_node(E1, ...)\|kmem_cache_alloc(...)\|kmem_alloc(E1, ...)\|
> -  devm_kmalloc(...,E1,...)\|kvmalloc(E1, ...)\|pci_alloc_consistent(...,E1,...)\|
> -  kvmalloc_node(E1,...)\);
> -  if ((x==NULL) || ...) S
> -* memset((T2)x,0,E1);
> -
> -//----------------------------------------------------------
> -//  For patch mode
> -//----------------------------------------------------------
> -
> -@depends on patch@
> -type T, T2;
> -expression x;
> -expression E1,E2,E3,E4;
> -statement S;
> -@@
> -
> -(
> -- x = kmalloc(E1,E2);
> -+ x = kzalloc(E1,E2);
> -|
> -- x = (T *)kmalloc(E1,E2);
> -+ x = kzalloc(E1,E2);
> -|
> -- x = (T)kmalloc(E1,E2);
> -+ x = (T)kzalloc(E1,E2);
> -|
> -- x = vmalloc(E1);
> -+ x = vzalloc(E1);
> -|
> -- x = (T *)vmalloc(E1);
> -+ x = vzalloc(E1);
> -|
> -- x = (T)vmalloc(E1);
> -+ x = (T)vzalloc(E1);
> -|
> -- x = dma_alloc_coherent(E2,E1,E3,E4);
> -+ x = dma_zalloc_coherent(E2,E1,E3,E4);
> -|
> -- x = (T *)dma_alloc_coherent(E2,E1,E3,E4);
> -+ x = dma_zalloc_coherent(E2,E1,E3,E4);
> -|
> -- x = (T)dma_alloc_coherent(E2,E1,E3,E4);
> -+ x = (T)dma_zalloc_coherent(E2,E1,E3,E4);
> -|
> -- x = kmalloc_node(E1,E2,E3);
> -+ x = kzalloc_node(E1,E2,E3);
> -|
> -- x = (T *)kmalloc_node(E1,E2,E3);
> -+ x = kzalloc_node(E1,E2,E3);
> -|
> -- x = (T)kmalloc_node(E1,E2,E3);
> -+ x = (T)kzalloc_node(E1,E2,E3);
> -|
> -- x = kmem_cache_alloc(E3,E4);
> -+ x = kmem_cache_zalloc(E3,E4);
> -|
> -- x = (T *)kmem_cache_alloc(E3,E4);
> -+ x = kmem_cache_zalloc(E3,E4);
> -|
> -- x = (T)kmem_cache_alloc(E3,E4);
> -+ x = (T)kmem_cache_zalloc(E3,E4);
> -|
> -- x = kmem_alloc(E1,E2);
> -+ x = kmem_zalloc(E1,E2);
> -|
> -- x = (T *)kmem_alloc(E1,E2);
> -+ x = kmem_zalloc(E1,E2);
> -|
> -- x = (T)kmem_alloc(E1,E2);
> -+ x = (T)kmem_zalloc(E1,E2);
> -|
> -- x = devm_kmalloc(E2,E1,E3);
> -+ x = devm_kzalloc(E2,E1,E3);
> -|
> -- x = (T *)devm_kmalloc(E2,E1,E3);
> -+ x = devm_kzalloc(E2,E1,E3);
> -|
> -- x = (T)devm_kmalloc(E2,E1,E3);
> -+ x = (T)devm_kzalloc(E2,E1,E3);
> -|
> -- x = kvmalloc(E1,E2);
> -+ x = kvzalloc(E1,E2);
> -|
> -- x = (T *)kvmalloc(E1,E2);
> -+ x = kvzalloc(E1,E2);
> -|
> -- x = (T)kvmalloc(E1,E2);
> -+ x = (T)kvzalloc(E1,E2);
> -|
> -- x = pci_alloc_consistent(E2,E1,E3);
> -+ x = pci_zalloc_consistent(E2,E1,E3);
> -|
> -- x = (T *)pci_alloc_consistent(E2,E1,E3);
> -+ x = pci_zalloc_consistent(E2,E1,E3);
> -|
> -- x = (T)pci_alloc_consistent(E2,E1,E3);
> -+ x = (T)pci_zalloc_consistent(E2,E1,E3);
> -|
> -- x = kvmalloc_node(E1,E2,E3);
> -+ x = kvzalloc_node(E1,E2,E3);
> -|
> -- x = (T *)kvmalloc_node(E1,E2,E3);
> -+ x = kvzalloc_node(E1,E2,E3);
> -|
> -- x = (T)kvmalloc_node(E1,E2,E3);
> -+ x = (T)kvzalloc_node(E1,E2,E3);
> -)
> -  if ((x==NULL) || ...) S
> -- memset((T2)x,0,E1);
> -
> -//----------------------------------------------------------
> -//  For org mode
> -//----------------------------------------------------------
> -
> -@r depends on org || report@
> -type T, T2;
> -expression x;
> -expression E1,E2;
> -statement S;
> -position p;
> -@@
> -
> - x = (T)kmalloc@p(E1,E2);
> - if ((x==NULL) || ...) S
> - memset((T2)x,0,E1);
> -
> -@script:python depends on org@
> -p << r.p;
> -x << r.x;
> -@@
> -
> -msg="%s" % (x)
> -msg_safe=msg.replace("[","@(").replace("]",")")
> -coccilib.org.print_todo(p[0], msg_safe)
> -
> -@script:python depends on report@
> -p << r.p;
> -x << r.x;
> -@@
> -
> -msg="WARNING: kzalloc should be used for %s, instead of kmalloc/memset" % (x)
> -coccilib.report.print_report(p[0], msg)
> -
> -//-----------------------------------------------------------------
> -@r1 depends on org || report@
> -type T, T2;
> -expression x;
> -expression E1;
> -statement S;
> -position p;
> -@@
> -
> - x = (T)vmalloc@p(E1);
> - if ((x==NULL) || ...) S
> - memset((T2)x,0,E1);
> -
> -@script:python depends on org@
> -p << r1.p;
> -x << r1.x;
> -@@
> -
> -msg="%s" % (x)
> -msg_safe=msg.replace("[","@(").replace("]",")")
> -coccilib.org.print_todo(p[0], msg_safe)
> -
> -@script:python depends on report@
> -p << r1.p;
> -x << r1.x;
> -@@
> -
> -msg="WARNING: vzalloc should be used for %s, instead of vmalloc/memset" % (x)
> -coccilib.report.print_report(p[0], msg)
> -
> -//-----------------------------------------------------------------
> -@r2 depends on org || report@
> -type T, T2;
> -expression x;
> -expression E1,E2,E3,E4;
> -statement S;
> -position p;
> -@@
> -
> - x = (T)dma_alloc_coherent@p(E2,E1,E3,E4);
> - if ((x==NULL) || ...) S
> - memset((T2)x,0,E1);
> -
> -@script:python depends on org@
> -p << r2.p;
> -x << r2.x;
> -@@
> -
> -msg="%s" % (x)
> -msg_safe=msg.replace("[","@(").replace("]",")")
> -coccilib.org.print_todo(p[0], msg_safe)
> -
> -@script:python depends on report@
> -p << r2.p;
> -x << r2.x;
> -@@
> -
> -msg="WARNING: dma_zalloc_coherent should be used for %s, instead of dma_alloc_coherent/memset" % (x)
> -coccilib.report.print_report(p[0], msg)
> -
> -//-----------------------------------------------------------------
> -@r3 depends on org || report@
> -type T, T2;
> -expression x;
> -expression E1,E2,E3;
> -statement S;
> -position p;
> -@@
> -
> - x = (T)kmalloc_node@p(E1,E2,E3);
> - if ((x==NULL) || ...) S
> - memset((T2)x,0,E1);
> -
> -@script:python depends on org@
> -p << r3.p;
> -x << r3.x;
> -@@
> -
> -msg="%s" % (x)
> -msg_safe=msg.replace("[","@(").replace("]",")")
> -coccilib.org.print_todo(p[0], msg_safe)
> -
> -@script:python depends on report@
> -p << r3.p;
> -x << r3.x;
> -@@
> -
> -msg="WARNING: kzalloc_node should be used for %s, instead of kmalloc_node/memset" % (x)
> -coccilib.report.print_report(p[0], msg)
> -
> -//-----------------------------------------------------------------
> -@r4 depends on org || report@
> -type T, T2;
> -expression x;
> -expression E1,E2,E3;
> -statement S;
> -position p;
> -@@
> -
> - x = (T)kmem_cache_alloc@p(E2,E3);
> - if ((x==NULL) || ...) S
> - memset((T2)x,0,E1);
> -
> -@script:python depends on org@
> -p << r4.p;
> -x << r4.x;
> -@@
> -
> -msg="%s" % (x)
> -msg_safe=msg.replace("[","@(").replace("]",")")
> -coccilib.org.print_todo(p[0], msg_safe)
> -
> -@script:python depends on report@
> -p << r4.p;
> -x << r4.x;
> -@@
> -
> -msg="WARNING: kmem_cache_zalloc should be used for %s, instead of kmem_cache_alloc/memset" % (x)
> -coccilib.report.print_report(p[0], msg)
> -
> -//-----------------------------------------------------------------
> -@r5 depends on org || report@
> -type T, T2;
> -expression x;
> -expression E1,E2;
> -statement S;
> -position p;
> -@@
> -
> - x = (T)kmem_alloc@p(E1,E2);
> - if ((x==NULL) || ...) S
> - memset((T2)x,0,E1);
> -
> -@script:python depends on org@
> -p << r5.p;
> -x << r5.x;
> -@@
> -
> -msg="%s" % (x)
> -msg_safe=msg.replace("[","@(").replace("]",")")
> -coccilib.org.print_todo(p[0], msg_safe)
> -
> -@script:python depends on report@
> -p << r5.p;
> -x << r5.x;
> -@@
> -
> -msg="WARNING: kmem_zalloc should be used for %s, instead of kmem_alloc/memset" % (x)
> -coccilib.report.print_report(p[0], msg)
> -
> -//-----------------------------------------------------------------
> -@r6 depends on org || report@
> -type T, T2;
> -expression x;
> -expression E1,E2,E3;
> -statement S;
> -position p;
> -@@
> -
> - x = (T)devm_kmalloc@p(E2,E1,E3);
> - if ((x==NULL) || ...) S
> - memset((T2)x,0,E1);
> -
> -@script:python depends on org@
> -p << r6.p;
> -x << r6.x;
> -@@
> -
> -msg="%s" % (x)
> -msg_safe=msg.replace("[","@(").replace("]",")")
> -coccilib.org.print_todo(p[0], msg_safe)
> -
> -@script:python depends on report@
> -p << r6.p;
> -x << r6.x;
> -@@
> -
> -msg="WARNING: devm_kzalloc should be used for %s, instead of devm_kmalloc/memset" % (x)
> -coccilib.report.print_report(p[0], msg)
> -
> -//-----------------------------------------------------------------
> -@r7 depends on org || report@
> -type T, T2;
> -expression x;
> -expression E1,E2;
> -statement S;
> -position p;
> -@@
> -
> - x = (T)kvmalloc@p(E1,E2);
> - if ((x==NULL) || ...) S
> - memset((T2)x,0,E1);
> -
> -@script:python depends on org@
> -p << r7.p;
> -x << r7.x;
> -@@
> -
> -msg="%s" % (x)
> -msg_safe=msg.replace("[","@(").replace("]",")")
> -coccilib.org.print_todo(p[0], msg_safe)
> -
> -@script:python depends on report@
> -p << r7.p;
> -x << r7.x;
> -@@
> -
> -msg="WARNING: kvzalloc should be used for %s, instead of kvmalloc/memset" % (x)
> -coccilib.report.print_report(p[0], msg)
> -
> -//-----------------------------------------------------------------
> -@r8 depends on org || report@
> -type T, T2;
> -expression x;
> -expression E1,E2,E3;
> -statement S;
> -position p;
> -@@
> -
> - x = (T)pci_alloc_consistent@p(E2,E1,E3);
> - if ((x==NULL) || ...) S
> - memset((T2)x,0,E1);
> -
> -@script:python depends on org@
> -p << r8.p;
> -x << r8.x;
> -@@
> -
> -msg="%s" % (x)
> -msg_safe=msg.replace("[","@(").replace("]",")")
> -coccilib.org.print_todo(p[0], msg_safe)
> -
> -@script:python depends on report@
> -p << r8.p;
> -x << r8.x;
> -@@
> -
> -msg="WARNING: pci_zalloc_consistent should be used for %s, instead of pci_alloc_consistent/memset" % (x)
> -coccilib.report.print_report(p[0], msg)
> -//-----------------------------------------------------------------
> -@r9 depends on org || report@
> -type T, T2;
> -expression x;
> -expression E1,E2,E3;
> -statement S;
> -position p;
> -@@
> -
> - x = (T)kvmalloc_node@p(E1,E2,E3);
> - if ((x==NULL) || ...) S
> - memset((T2)x,0,E1);
> -
> -@script:python depends on org@
> -p << r9.p;
> -x << r9.x;
> -@@
> -
> -msg="%s" % (x)
> -msg_safe=msg.replace("[","@(").replace("]",")")
> -coccilib.org.print_todo(p[0], msg_safe)
> -
> -@script:python depends on report@
> -p << r9.p;
> -x << r9.x;
> -@@
> -
> -msg="WARNING: kvzalloc_node should be used for %s, instead of kvmalloc_node/memset" % (x)
> -coccilib.report.print_report(p[0], msg)
> diff --git a/scripts/coccinelle/api/alloc/zalloc.cocci b/scripts/coccinelle/api/alloc/zalloc.cocci
> new file mode 100644
> index 0000000..92b2091
> --- /dev/null
> +++ b/scripts/coccinelle/api/alloc/zalloc.cocci
> @@ -0,0 +1,448 @@
> +///
> +/// Use zeroing allocator rather than allocator followed by memset with 0
> +///
> +/// This considers some simple cases that are common and easy to validate
> +/// Note in particular that there are no ...s in the rule, so all of the
> +/// matched code has to be contiguous
> +///
> +// Confidence: High
> +// Copyright: (C) 2009-2010 Julia Lawall, Nicolas Palix, DIKU.  GPLv2.
> +// Copyright: (C) 2009-2010 Gilles Muller, INRIA/LiP6.  GPLv2.
> +// Copyright: (C) 2017 Himanshu Jha GPLv2.
> +// URL: http://coccinelle.lip6.fr/rules/kzalloc.html
> +// Options: --no-includes --include-headers
> +//
> +// Keywords: kmalloc, kzalloc
> +// Version min: < 2.6.12 kmalloc
> +// Version min:   2.6.14 kzalloc
> +//
> +
> +virtual context
> +virtual patch
> +virtual org
> +virtual report
> +
> +//----------------------------------------------------------
> +//  For context mode
> +//----------------------------------------------------------
> +
> +@depends on context@
> +type T, T2;
> +expression x;
> +expression E1;
> +statement S;
> +@@
> +
> +* x = (T)\(kmalloc(E1, ...)\|vmalloc(E1)\|dma_alloc_coherent(...,E1,...)\|
> +  kmalloc_node(E1, ...)\|kmem_cache_alloc(...)\|kmem_alloc(E1, ...)\|
> +  devm_kmalloc(...,E1,...)\|kvmalloc(E1, ...)\|pci_alloc_consistent(...,E1,...)\|
> +  kvmalloc_node(E1,...)\);
> +  if ((x==NULL) || ...) S
> +* memset((T2)x,0,E1);
> +
> +//----------------------------------------------------------
> +//  For patch mode
> +//----------------------------------------------------------
> +
> +@depends on patch@
> +type T, T2;
> +expression x;
> +expression E1,E2,E3,E4;
> +statement S;
> +@@
> +
> +(
> +- x = kmalloc(E1,E2);
> ++ x = kzalloc(E1,E2);
> +|
> +- x = (T *)kmalloc(E1,E2);
> ++ x = kzalloc(E1,E2);
> +|
> +- x = (T)kmalloc(E1,E2);
> ++ x = (T)kzalloc(E1,E2);
> +|
> +- x = vmalloc(E1);
> ++ x = vzalloc(E1);
> +|
> +- x = (T *)vmalloc(E1);
> ++ x = vzalloc(E1);
> +|
> +- x = (T)vmalloc(E1);
> ++ x = (T)vzalloc(E1);
> +|
> +- x = dma_alloc_coherent(E2,E1,E3,E4);
> ++ x = dma_zalloc_coherent(E2,E1,E3,E4);
> +|
> +- x = (T *)dma_alloc_coherent(E2,E1,E3,E4);
> ++ x = dma_zalloc_coherent(E2,E1,E3,E4);
> +|
> +- x = (T)dma_alloc_coherent(E2,E1,E3,E4);
> ++ x = (T)dma_zalloc_coherent(E2,E1,E3,E4);
> +|
> +- x = kmalloc_node(E1,E2,E3);
> ++ x = kzalloc_node(E1,E2,E3);
> +|
> +- x = (T *)kmalloc_node(E1,E2,E3);
> ++ x = kzalloc_node(E1,E2,E3);
> +|
> +- x = (T)kmalloc_node(E1,E2,E3);
> ++ x = (T)kzalloc_node(E1,E2,E3);
> +|
> +- x = kmem_cache_alloc(E3,E4);
> ++ x = kmem_cache_zalloc(E3,E4);
> +|
> +- x = (T *)kmem_cache_alloc(E3,E4);
> ++ x = kmem_cache_zalloc(E3,E4);
> +|
> +- x = (T)kmem_cache_alloc(E3,E4);
> ++ x = (T)kmem_cache_zalloc(E3,E4);
> +|
> +- x = kmem_alloc(E1,E2);
> ++ x = kmem_zalloc(E1,E2);
> +|
> +- x = (T *)kmem_alloc(E1,E2);
> ++ x = kmem_zalloc(E1,E2);
> +|
> +- x = (T)kmem_alloc(E1,E2);
> ++ x = (T)kmem_zalloc(E1,E2);
> +|
> +- x = devm_kmalloc(E2,E1,E3);
> ++ x = devm_kzalloc(E2,E1,E3);
> +|
> +- x = (T *)devm_kmalloc(E2,E1,E3);
> ++ x = devm_kzalloc(E2,E1,E3);
> +|
> +- x = (T)devm_kmalloc(E2,E1,E3);
> ++ x = (T)devm_kzalloc(E2,E1,E3);
> +|
> +- x = kvmalloc(E1,E2);
> ++ x = kvzalloc(E1,E2);
> +|
> +- x = (T *)kvmalloc(E1,E2);
> ++ x = kvzalloc(E1,E2);
> +|
> +- x = (T)kvmalloc(E1,E2);
> ++ x = (T)kvzalloc(E1,E2);
> +|
> +- x = pci_alloc_consistent(E2,E1,E3);
> ++ x = pci_zalloc_consistent(E2,E1,E3);
> +|
> +- x = (T *)pci_alloc_consistent(E2,E1,E3);
> ++ x = pci_zalloc_consistent(E2,E1,E3);
> +|
> +- x = (T)pci_alloc_consistent(E2,E1,E3);
> ++ x = (T)pci_zalloc_consistent(E2,E1,E3);
> +|
> +- x = kvmalloc_node(E1,E2,E3);
> ++ x = kvzalloc_node(E1,E2,E3);
> +|
> +- x = (T *)kvmalloc_node(E1,E2,E3);
> ++ x = kvzalloc_node(E1,E2,E3);
> +|
> +- x = (T)kvmalloc_node(E1,E2,E3);
> ++ x = (T)kvzalloc_node(E1,E2,E3);
> +)
> +  if ((x==NULL) || ...) S
> +- memset((T2)x,0,E1);
> +
> +//----------------------------------------------------------
> +//  For org mode
> +//----------------------------------------------------------
> +
> +@r depends on org || report@
> +type T, T2;
> +expression x;
> +expression E1,E2;
> +statement S;
> +position p;
> +@@
> +
> + x = (T)kmalloc@p(E1,E2);
> + if ((x==NULL) || ...) S
> + memset((T2)x,0,E1);
> +
> +@script:python depends on org@
> +p << r.p;
> +x << r.x;
> +@@
> +
> +msg="%s" % (x)
> +msg_safe=msg.replace("[","@(").replace("]",")")
> +coccilib.org.print_todo(p[0], msg_safe)
> +
> +@script:python depends on report@
> +p << r.p;
> +x << r.x;
> +@@
> +
> +msg="WARNING: kzalloc should be used for %s, instead of kmalloc/memset" % (x)
> +coccilib.report.print_report(p[0], msg)
> +
> +//-----------------------------------------------------------------
> +@r1 depends on org || report@
> +type T, T2;
> +expression x;
> +expression E1;
> +statement S;
> +position p;
> +@@
> +
> + x = (T)vmalloc@p(E1);
> + if ((x==NULL) || ...) S
> + memset((T2)x,0,E1);
> +
> +@script:python depends on org@
> +p << r1.p;
> +x << r1.x;
> +@@
> +
> +msg="%s" % (x)
> +msg_safe=msg.replace("[","@(").replace("]",")")
> +coccilib.org.print_todo(p[0], msg_safe)
> +
> +@script:python depends on report@
> +p << r1.p;
> +x << r1.x;
> +@@
> +
> +msg="WARNING: vzalloc should be used for %s, instead of vmalloc/memset" % (x)
> +coccilib.report.print_report(p[0], msg)
> +
> +//-----------------------------------------------------------------
> +@r2 depends on org || report@
> +type T, T2;
> +expression x;
> +expression E1,E2,E3,E4;
> +statement S;
> +position p;
> +@@
> +
> + x = (T)dma_alloc_coherent@p(E2,E1,E3,E4);
> + if ((x==NULL) || ...) S
> + memset((T2)x,0,E1);
> +
> +@script:python depends on org@
> +p << r2.p;
> +x << r2.x;
> +@@
> +
> +msg="%s" % (x)
> +msg_safe=msg.replace("[","@(").replace("]",")")
> +coccilib.org.print_todo(p[0], msg_safe)
> +
> +@script:python depends on report@
> +p << r2.p;
> +x << r2.x;
> +@@
> +
> +msg="WARNING: dma_zalloc_coherent should be used for %s, instead of dma_alloc_coherent/memset" % (x)
> +coccilib.report.print_report(p[0], msg)
> +
> +//-----------------------------------------------------------------
> +@r3 depends on org || report@
> +type T, T2;
> +expression x;
> +expression E1,E2,E3;
> +statement S;
> +position p;
> +@@
> +
> + x = (T)kmalloc_node@p(E1,E2,E3);
> + if ((x==NULL) || ...) S
> + memset((T2)x,0,E1);
> +
> +@script:python depends on org@
> +p << r3.p;
> +x << r3.x;
> +@@
> +
> +msg="%s" % (x)
> +msg_safe=msg.replace("[","@(").replace("]",")")
> +coccilib.org.print_todo(p[0], msg_safe)
> +
> +@script:python depends on report@
> +p << r3.p;
> +x << r3.x;
> +@@
> +
> +msg="WARNING: kzalloc_node should be used for %s, instead of kmalloc_node/memset" % (x)
> +coccilib.report.print_report(p[0], msg)
> +
> +//-----------------------------------------------------------------
> +@r4 depends on org || report@
> +type T, T2;
> +expression x;
> +expression E1,E2,E3;
> +statement S;
> +position p;
> +@@
> +
> + x = (T)kmem_cache_alloc@p(E2,E3);
> + if ((x==NULL) || ...) S
> + memset((T2)x,0,E1);
> +
> +@script:python depends on org@
> +p << r4.p;
> +x << r4.x;
> +@@
> +
> +msg="%s" % (x)
> +msg_safe=msg.replace("[","@(").replace("]",")")
> +coccilib.org.print_todo(p[0], msg_safe)
> +
> +@script:python depends on report@
> +p << r4.p;
> +x << r4.x;
> +@@
> +
> +msg="WARNING: kmem_cache_zalloc should be used for %s, instead of kmem_cache_alloc/memset" % (x)
> +coccilib.report.print_report(p[0], msg)
> +
> +//-----------------------------------------------------------------
> +@r5 depends on org || report@
> +type T, T2;
> +expression x;
> +expression E1,E2;
> +statement S;
> +position p;
> +@@
> +
> + x = (T)kmem_alloc@p(E1,E2);
> + if ((x==NULL) || ...) S
> + memset((T2)x,0,E1);
> +
> +@script:python depends on org@
> +p << r5.p;
> +x << r5.x;
> +@@
> +
> +msg="%s" % (x)
> +msg_safe=msg.replace("[","@(").replace("]",")")
> +coccilib.org.print_todo(p[0], msg_safe)
> +
> +@script:python depends on report@
> +p << r5.p;
> +x << r5.x;
> +@@
> +
> +msg="WARNING: kmem_zalloc should be used for %s, instead of kmem_alloc/memset" % (x)
> +coccilib.report.print_report(p[0], msg)
> +
> +//-----------------------------------------------------------------
> +@r6 depends on org || report@
> +type T, T2;
> +expression x;
> +expression E1,E2,E3;
> +statement S;
> +position p;
> +@@
> +
> + x = (T)devm_kmalloc@p(E2,E1,E3);
> + if ((x==NULL) || ...) S
> + memset((T2)x,0,E1);
> +
> +@script:python depends on org@
> +p << r6.p;
> +x << r6.x;
> +@@
> +
> +msg="%s" % (x)
> +msg_safe=msg.replace("[","@(").replace("]",")")
> +coccilib.org.print_todo(p[0], msg_safe)
> +
> +@script:python depends on report@
> +p << r6.p;
> +x << r6.x;
> +@@
> +
> +msg="WARNING: devm_kzalloc should be used for %s, instead of devm_kmalloc/memset" % (x)
> +coccilib.report.print_report(p[0], msg)
> +
> +//-----------------------------------------------------------------
> +@r7 depends on org || report@
> +type T, T2;
> +expression x;
> +expression E1,E2;
> +statement S;
> +position p;
> +@@
> +
> + x = (T)kvmalloc@p(E1,E2);
> + if ((x==NULL) || ...) S
> + memset((T2)x,0,E1);
> +
> +@script:python depends on org@
> +p << r7.p;
> +x << r7.x;
> +@@
> +
> +msg="%s" % (x)
> +msg_safe=msg.replace("[","@(").replace("]",")")
> +coccilib.org.print_todo(p[0], msg_safe)
> +
> +@script:python depends on report@
> +p << r7.p;
> +x << r7.x;
> +@@
> +
> +msg="WARNING: kvzalloc should be used for %s, instead of kvmalloc/memset" % (x)
> +coccilib.report.print_report(p[0], msg)
> +
> +//-----------------------------------------------------------------
> +@r8 depends on org || report@
> +type T, T2;
> +expression x;
> +expression E1,E2,E3;
> +statement S;
> +position p;
> +@@
> +
> + x = (T)pci_alloc_consistent@p(E2,E1,E3);
> + if ((x==NULL) || ...) S
> + memset((T2)x,0,E1);
> +
> +@script:python depends on org@
> +p << r8.p;
> +x << r8.x;
> +@@
> +
> +msg="%s" % (x)
> +msg_safe=msg.replace("[","@(").replace("]",")")
> +coccilib.org.print_todo(p[0], msg_safe)
> +
> +@script:python depends on report@
> +p << r8.p;
> +x << r8.x;
> +@@
> +
> +msg="WARNING: pci_zalloc_consistent should be used for %s, instead of pci_alloc_consistent/memset" % (x)
> +coccilib.report.print_report(p[0], msg)
> +//-----------------------------------------------------------------
> +@r9 depends on org || report@
> +type T, T2;
> +expression x;
> +expression E1,E2,E3;
> +statement S;
> +position p;
> +@@
> +
> + x = (T)kvmalloc_node@p(E1,E2,E3);
> + if ((x==NULL) || ...) S
> + memset((T2)x,0,E1);
> +
> +@script:python depends on org@
> +p << r9.p;
> +x << r9.x;
> +@@
> +
> +msg="%s" % (x)
> +msg_safe=msg.replace("[","@(").replace("]",")")
> +coccilib.org.print_todo(p[0], msg_safe)
> +
> +@script:python depends on report@
> +p << r9.p;
> +x << r9.x;
> +@@
> +
> +msg="WARNING: kvzalloc_node should be used for %s, instead of kvmalloc_node/memset" % (x)
> +coccilib.report.print_report(p[0], msg)
> --
> 2.7.4
>
>

  reply	other threads:[~2018-01-13 16:27 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-13 15:57 [PATCH] Coccinelle: kzalloc-simple: Rename kzalloc-simple to zalloc-simple Himanshu Jha
2018-01-13 16:27 ` Julia Lawall [this message]
2018-01-13 17:02 ` [Cocci] " Fabio Estevam
2018-01-13 17:53   ` Himanshu Jha
2018-01-13 19:13     ` Fabio Estevam
2018-01-13 19:52       ` Himanshu Jha

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.DEB.2.20.1801131727091.3470@hadrien \
    --to=julia.lawall@lip6.fr \
    --cc=Gilles.Muller@lip6.fr \
    --cc=cocci@systeme.lip6.fr \
    --cc=himanshujha199640@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michal.lkml@markovi.net \
    --cc=nicolas.palix@imag.fr \
    --cc=yamada.masahiro@socionext.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).