Re: [PATCH] coccinelle: ifnullfree: add vfree(), kvfree*() functions
On Wed, 2 Sep 2020, Markus Elfring wrote: > … > > +++ b/scripts/coccinelle/free/ifnullfree.cocci > > @@ -20,8 +20,14 @@ expression E; > > - if (E != NULL) > > ( > >kfree(E); > > +| > > + kvfree(E); > > | > >kfree_sensitive(E); > > +| > > + kvfree_sensitive(E, ...); > > +| > > + vfree(E); > > | > >debugfs_remove(E); > > | > > Would you ever get into the development mood to move the source code search > specification “(E);” out of the SmPL disjunction (as it happened for the rule > “r”)? > > > > @@ -42,9 +48,10 @@ position p; > > @@ > > > > * if (E != NULL) > > -* > > \(kfree@p\|kfree_sensitive@p\|debugfs_remove@p\|debugfs_remove_recursive@p\| > > +* \(kfree@p\|kvfree@p\|kfree_sensitive@p\|kvfree_sensitive@p\|vfree@p\| > > +* debugfs_remove@p\|debugfs_remove_recursive@p\| > > * usb_free_urb@p\|kmem_cache_destroy@p\|mempool_destroy@p\| > > -* dma_pool_destroy@p\)(E); > > +* dma_pool_destroy@p\)(E, ...); > … > > How do you think about to attach the position variable to the opening > parenthesis > instead of each function name? > > +* dma_pool_destroy\)(@p E, ...); While it probably impacts few people, this is a really bad idea for org mode, because org mode colors the thing that the position variable is attached to. Having the ( colored would not be very visible. But even for report mode, this is probably not a good idea for the rare case where the function name and the argument list are on different lines. julia > > > Would the number of function call parameters influence such SmPL code any > more? > > Regards, > Markus >
Re: [PATCH] coccinelle: ifnullfree: add vfree(), kvfree*() functions
On Wed, 2 Sep 2020, Denis Efremov wrote: > Extend the list of free functions with kvfree(), kvfree_sensitive(), > vfree(). > > Signed-off-by: Denis Efremov Applied, thanks. julia > --- > scripts/coccinelle/free/ifnullfree.cocci | 11 +-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/scripts/coccinelle/free/ifnullfree.cocci > b/scripts/coccinelle/free/ifnullfree.cocci > index 2045391e36a0..285b92d5c665 100644 > --- a/scripts/coccinelle/free/ifnullfree.cocci > +++ b/scripts/coccinelle/free/ifnullfree.cocci > @@ -20,8 +20,14 @@ expression E; > - if (E != NULL) > ( >kfree(E); > +| > + kvfree(E); > | >kfree_sensitive(E); > +| > + kvfree_sensitive(E, ...); > +| > + vfree(E); > | >debugfs_remove(E); > | > @@ -42,9 +48,10 @@ position p; > @@ > > * if (E != NULL) > -* > \(kfree@p\|kfree_sensitive@p\|debugfs_remove@p\|debugfs_remove_recursive@p\| > +*\(kfree@p\|kvfree@p\|kfree_sensitive@p\|kvfree_sensitive@p\|vfree@p\| > +* debugfs_remove@p\|debugfs_remove_recursive@p\| > * usb_free_urb@p\|kmem_cache_destroy@p\|mempool_destroy@p\| > -* dma_pool_destroy@p\)(E); > +* dma_pool_destroy@p\)(E, ...); > > @script:python depends on org@ > p << r.p; > -- > 2.26.2 > >
[PATCH] coccinelle: ifnullfree: add vfree(), kvfree*() functions
Extend the list of free functions with kvfree(), kvfree_sensitive(), vfree(). Signed-off-by: Denis Efremov --- scripts/coccinelle/free/ifnullfree.cocci | 11 +-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/scripts/coccinelle/free/ifnullfree.cocci b/scripts/coccinelle/free/ifnullfree.cocci index 2045391e36a0..285b92d5c665 100644 --- a/scripts/coccinelle/free/ifnullfree.cocci +++ b/scripts/coccinelle/free/ifnullfree.cocci @@ -20,8 +20,14 @@ expression E; - if (E != NULL) ( kfree(E); +| + kvfree(E); | kfree_sensitive(E); +| + kvfree_sensitive(E, ...); +| + vfree(E); | debugfs_remove(E); | @@ -42,9 +48,10 @@ position p; @@ * if (E != NULL) -* \(kfree@p\|kfree_sensitive@p\|debugfs_remove@p\|debugfs_remove_recursive@p\| +* \(kfree@p\|kvfree@p\|kfree_sensitive@p\|kvfree_sensitive@p\|vfree@p\| +* debugfs_remove@p\|debugfs_remove_recursive@p\| * usb_free_urb@p\|kmem_cache_destroy@p\|mempool_destroy@p\| -* dma_pool_destroy@p\)(E); +* dma_pool_destroy@p\)(E, ...); @script:python depends on org@ p << r.p; -- 2.26.2