All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Whitcroft <apw@canonical.com>
To: Joe Perches <joe@perches.com>
Cc: Constantine Shulyupin <const@makelinux.com>,
	linux-kernel@vger.kernel.org, gregkh@linuxfoundation.org
Subject: [PATCH] checkpatch: consolidate if (foo) bar(foo) checks and add debugfs_remove
Date: Tue, 20 Nov 2012 15:37:51 +0000	[thread overview]
Message-ID: <20121120153751.GJ7955@dm> (raw)
In-Reply-To: <1353423503.11235.12.camel@joe-AO722>

Consolidate the if (foo) bar(foo) detectors into a single check.  Add
debugfs_remove and family.

Based on a patch by Constantine Shulyupin <const@MakeLinux.com>.

Signed-off-by: Andy Whitcroft <apw@canonical.com>
---
 scripts/checkpatch.pl |   20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

This is a fully merged version as the fix patch was bigger than the
whole merged patch and this is much clearer as to purpose.  Hope that
makes sense.
	
-apw

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index ae01b90..e83a137 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -3239,20 +3239,16 @@ sub process {
 				$herecurr);
 		}
 
+# check for needless "if (<foo>) fn(<foo>)" uses
+		if ($prevline =~ /\bif\s*\(\s*($Lval)\s*\)/) {
+			my $expr = '\s*\(\s*' . quotemeta($1) . '\s*\)\s*;';
+
 # check for needless kfree() checks
-		if ($prevline =~ /\bif\s*\(([^\)]*)\)/) {
-			my $expr = $1;
-			if ($line =~ /\bkfree\(\Q$expr\E\);/) {
-				WARN("NEEDLESS_KFREE",
-				     "kfree(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;
-			if ($line =~ /\busb_free_urb\(\Q$expr\E\);/) {
-				WARN("NEEDLESS_USB_FREE_URB",
-				     "usb_free_urb(NULL) is safe this check is probably not required\n" . $hereprev);
+# check for needless debugfs_remove() and debugfs_remove_recursive*() checks
+			if ($line =~ /\b(kfree|usb_free_urb|debugfs_remove(?:_recursive)?)$expr/) {
+				WARN('NEEDLESS_IF',
+				     "$1(NULL) is safe this check is probably not required\n" . $hereprev);
 			}
 		}
 
-- 
1.7.10.4


  parent reply	other threads:[~2012-11-20 15:37 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-17 22:20 [PATCH v4] checkpatch: debugfs_remove() can take NULL Constantine Shulyupin
2012-11-20 14:29 ` Andy Whitcroft
2012-11-20 14:43   ` Joe Perches
2012-11-20 14:47     ` Andy Whitcroft
2012-11-20 14:50       ` Constantine Shulyupin
2012-11-20 14:58         ` Joe Perches
2012-11-20 15:10           ` Constantine Shulyupin
2012-11-20 15:22             ` Andy Whitcroft
2012-11-20 20:57               ` [PATCH] checkpatch: Allow control over line length warning, default remains 80 Joe Perches
2012-11-20 15:37           ` Andy Whitcroft [this message]
2012-11-20 15:51             ` [PATCH] checkpatch: consolidate if (foo) bar(foo) checks and add debugfs_remove Joe Perches
2012-11-20 16:39               ` Andy Whitcroft
2012-11-20 18:37                 ` Joe Perches
2012-11-20 19:17                   ` [PATCH V2] " Andy Whitcroft

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=20121120153751.GJ7955@dm \
    --to=apw@canonical.com \
    --cc=const@makelinux.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=joe@perches.com \
    --cc=linux-kernel@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.