2012-11-17 12:33:08

by Constantine Shulyupin

[permalink] [raw]
Subject: [PATCH] checkpatch: debugfs_remove() can take NULL

From: Constantine Shulyupin <[email protected]>

debugfs_remove() can take a NULL, so let's check and warn about that.

Signed-off-by: Constantine Shulyupin <[email protected]>
---
scripts/checkpatch.pl | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index f18750e..c062476 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -3221,6 +3221,14 @@ sub process {
"kfree(NULL) is safe this check is probably not required\n" . $hereprev);
}
}
+# check for needless debugfs_remove() checks
+ if ($prevline =~ /\bif\s*\(([^\)]*)\)/) {
+ my $expr = $1;
+ if ($line =~ /\bdebugfs_remove\(\Q$expr\E\);/) {
+ WARN("NEEDLESS_DEBUGFS_REMOVE",
+ "debugfs_remove(NULL) is safe this check is probably not required\n" . $hereprev);
+ }
+ }
# check for needless usb_free_urb() checks
if ($prevline =~ /\bif\s*\(([^\)]*)\)/) {
my $expr = $1;
--
1.7.9.5


2012-11-17 13:30:18

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH] checkpatch: debugfs_remove() can take NULL

On Sat, 2012-11-17 at 14:33 +0200, Constantine Shulyupin wrote:
> From: Constantine Shulyupin <[email protected]>
>
> debugfs_remove() can take a NULL, so let's check and warn about that.
>
> Signed-off-by: Constantine Shulyupin <[email protected]>
> ---
> scripts/checkpatch.pl | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index f18750e..c062476 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -3221,6 +3221,14 @@ sub process {
> "kfree(NULL) is safe this check is probably not required\n" . $hereprev);
> }
> }
> +# check for needless debugfs_remove() checks
> + if ($prevline =~ /\bif\s*\(([^\)]*)\)/) {
> + my $expr = $1;
> + if ($line =~ /\bdebugfs_remove\(\Q$expr\E\);/) {
> + WARN("NEEDLESS_DEBUGFS_REMOVE",
> + "debugfs_remove(NULL) is safe this check is probably not required\n" . $hereprev);
> + }
> + }
> # check for needless usb_free_urb() checks
> if ($prevline =~ /\bif\s*\(([^\)]*)\)/) {
> my $expr = $1;

Perhaps debugfs_remove_recursive should be added too.

Please create a consolidated block of tests for these
checks of:

if (foo)
something_with(foo)

and add kfree, usb_free_urb and your debugfs_remove (and
debugfs_remove_recursive?) to that block so that the
"if ($prevline..." test is done only once per patch line.