checkpatch: avoid sscanf test duplicated messages
[firefly-linux-kernel-4.4.55.git] / scripts / checkpatch.pl
index 0b40af57e71ec280a0a7dd62e6f7354cebfdd9c1..e7c50977fe3d54d0cf4b1fd3515cba2a9b47acc9 100755 (executable)
@@ -3931,6 +3931,19 @@ sub process {
                        }
                }
 
+# don't use __constant_<foo> functions outside of include/uapi/
+               if ($realfile !~ m@^include/uapi/@ &&
+                   $line =~ /(__constant_(?:htons|ntohs|[bl]e(?:16|32|64)_to_cpu|cpu_to_[bl]e(?:16|32|64)))\s*\(/) {
+                       my $constant_func = $1;
+                       my $func = $constant_func;
+                       $func =~ s/^__constant_//;
+                       if (WARN("CONSTANT_CONVERSION",
+                                "$constant_func should be $func\n" . $herecurr) &&
+                           $fix) {
+                               $fixed[$linenr - 1] =~ s/\b$constant_func\b/$func/g;
+                       }
+               }
+
 # prefer usleep_range over udelay
                if ($line =~ /\budelay\s*\(\s*(\d+)\s*\)/) {
                        my $delay = $1;
@@ -4175,7 +4188,7 @@ sub process {
 # check for naked sscanf
                if ($^V && $^V ge 5.10.0 &&
                    defined $stat &&
-                   $stat =~ /\bsscanf\b/ &&
+                   $line =~ /\bsscanf\b/ &&
                    ($stat !~ /$Ident\s*=\s*sscanf\s*$balanced_parens/ &&
                     $stat !~ /\bsscanf\s*$balanced_parens\s*(?:$Compare)/ &&
                     $stat !~ /(?:$Compare)\s*\bsscanf\s*$balanced_parens/)) {
@@ -4499,9 +4512,11 @@ sub process {
                                my $val = $1;
                                $val = $6 if ($skip_args ne "");
 
-                               if ($val =~ /^$Int$/ && $val !~ /^$Octal$/) {
+                               if ($val !~ /^0$/ &&
+                                   (($val =~ /^$Int$/ && $val !~ /^$Octal$/) ||
+                                    length($val) ne 4)) {
                                        ERROR("NON_OCTAL_PERMISSIONS",
-                                             "Use octal not decimal permissions\n" . $herecurr);
+                                             "Use 4 digit octal (0777) not decimal permissions\n" . $herecurr);
                                }
                        }
                }