mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Andy Whitcroft <apw@shadowen.org>, Dave Jones <davej@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: [PATCH] checkpatch: Test for kmalloc/memset(0) pairs
Date: Thu, 17 Mar 2011 22:52:24 -0400	[thread overview]
Message-ID: <1300416744.16880.904.camel@gandalf.stny.rr.com> (raw)

The use of kzalloc() is preferred over kmalloc/memset(0) pairs.

When a match is made with "memset(p, 0, s);" a search back through the
patch hunk is made looking for "p = kmalloc(s,". If that is found, then
a warning is given, suggesting to use kzalloc() instead.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 58848e3..f28f0e3 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2902,6 +2902,22 @@ sub process {
 		    $line =~ /DEVICE_ATTR.*S_IWUGO/ ) {
 			WARN("Exporting world writable files is usually an error. Consider more restrictive permissions.\n" . $herecurr);
 		}
+
+# The use of kzalloc() is preferred over kmalloc/memset(0) pairs.
+		if ($line =~ /\smemset\s*\((\S*)\s*,\s*(?:0x0|0)\s*,\s*(\S*)\s*\);/) {
+		    my $ptr = $1;
+		    my $size = $2;
+
+		    for (my $i = $linenr-2; $i >= 0; $i--) {
+			next if ($lines[$i] =~ /^-/); # ignore deletions
+			last if ($lines[$i] =~ /^\@\@/);
+			if ($lines[$i] =~ /\s(\S*)\s*=\s*kmalloc\((\S*)\,/ &&
+			    $1 eq $ptr && $2 eq $size) {
+			    WARN("use kzalloc() instead of kmalloc/memset(p,0,size) pair\n"
+				 . $herecurr);
+			}
+		    }
+		}
 	}
 
 	# If we have no input at all, then there is nothing to report on



             reply	other threads:[~2011-03-18  2:52 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-18  2:52 Steven Rostedt [this message]
2011-03-18  3:15 ` Jonathan Corbet
2011-03-18  3:32   ` Steven Rostedt
2011-03-20  3:40     ` Américo Wang
2011-03-20  7:02       ` Pekka Enberg
2011-03-20  8:01         ` Julia Lawall
2011-03-20  9:02           ` Pekka Enberg
2011-03-20  9:17             ` Julia Lawall
2011-03-20 10:54               ` Ingo Molnar
2011-03-20 11:06                 ` Pekka Enberg
2011-03-20 11:32                   ` Nicolas Palix
2011-03-20 12:00                     ` Julia Lawall
2011-03-20 11:09                 ` Alexey Dobriyan
2011-03-20 12:38                 ` Julia Lawall
2011-03-20 14:48                 ` Alejandro Riveira Fernández
2011-03-21 13:13                   ` Steven Rostedt
2011-03-24 15:34               ` Aneesh Kumar K. V
2011-03-24 16:08                 ` Julia Lawall
2011-03-24 16:10                   ` Nicolas Palix
2011-03-24 18:30                     ` Arnaud Lacombe
2011-03-24 20:39                       ` Julia Lawall
2011-03-24 17:28                   ` Aneesh Kumar K. V
2011-03-19 19:39   ` Dave Jones
2011-03-21 13:26     ` Steven Rostedt
2011-03-21 13:29       ` Steven Rostedt
2011-03-21 13:55       ` Borislav Petkov
2011-03-22 19:58       ` checkpatch: introduce --nocs to disable CodingStyle warnings Dave Jones
2011-03-22 20:21         ` Joe Perches

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=1300416744.16880.904.camel@gandalf.stny.rr.com \
    --to=rostedt@goodmis.org \
    --cc=akpm@linux-foundation.org \
    --cc=apw@shadowen.org \
    --cc=davej@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®