checkpatch: widen implied comment detection to allow multiple stars
[safe/jmp/linux-2.6] / scripts / checkpatch.pl
index e30bac1..a305aa5 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/perl -w
-# (c) 2001, Dave Jones. <davej@codemonkey.org.uk> (the file handling bit)
+# (c) 2001, Dave Jones. <davej@redhat.com> (the file handling bit)
 # (c) 2005, Joel Schopp <jschopp@austin.ibm.com> (the ugly bit)
 # (c) 2007, Andy Whitcroft <apw@uk.ibm.com> (new conditions, test suite, etc)
 # Licensed under the terms of the GNU GPL License version 2
@@ -1097,8 +1097,8 @@ sub process {
                                         $rawlines[$ln - 1] =~ /^-/);
                                $cnt--;
                                #print "RAW<$rawlines[$ln - 1]>\n";
-                               ($edge) = (defined $rawlines[$ln - 1] &&
-                                       $rawlines[$ln - 1] =~ m@(/\*|\*/)@);
+                               last if (!defined $rawlines[$ln - 1]);
+                               ($edge) = ($rawlines[$ln - 1] =~ m@(/\*|\*/)@);
                                last if (defined $edge);
                        }
                        if (defined $edge && $edge eq '*/') {
@@ -1109,7 +1109,7 @@ sub process {
                        # is the start of a diff block and this line starts
                        # ' *' then it is very likely a comment.
                        if (!defined $edge &&
-                           $rawlines[$linenr] =~ m@^.\s* \*(?:\s|$)@)
+                           $rawlines[$linenr] =~ m@^.\s*(?:\*\*+| \*)(?:\s|$)@)
                        {
                                $in_comment = 1;
                        }
@@ -2466,6 +2466,15 @@ sub process {
                                last;
                        }
                }
+
+# whine mightly about in_atomic
+               if ($line =~ /\bin_atomic\s*\(/) {
+                       if ($realfile =~ m@^drivers/@) {
+                               ERROR("do not use in_atomic in drivers\n" . $herecurr);
+                       } else {
+                               WARN("use of in_atomic() is incorrect outside core kernel code\n" . $herecurr);
+                       }
+               }
        }
 
        # If we have no input at all, then there is nothing to report on