aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/checkpatch.pl
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/checkpatch.pl')
-rwxr-xr-xscripts/checkpatch.pl16
1 files changed, 11 insertions, 5 deletions
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 58848e3e392c..d8670810db65 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -1946,13 +1946,13 @@ sub process {
1946# printk should use KERN_* levels. Note that follow on printk's on the 1946# printk should use KERN_* levels. Note that follow on printk's on the
1947# same line do not need a level, so we use the current block context 1947# same line do not need a level, so we use the current block context
1948# to try and find and validate the current printk. In summary the current 1948# to try and find and validate the current printk. In summary the current
1949# printk includes all preceeding printk's which have no newline on the end. 1949# printk includes all preceding printk's which have no newline on the end.
1950# we assume the first bad printk is the one to report. 1950# we assume the first bad printk is the one to report.
1951 if ($line =~ /\bprintk\((?!KERN_)\s*"/) { 1951 if ($line =~ /\bprintk\((?!KERN_)\s*"/) {
1952 my $ok = 0; 1952 my $ok = 0;
1953 for (my $ln = $linenr - 1; $ln >= $first_line; $ln--) { 1953 for (my $ln = $linenr - 1; $ln >= $first_line; $ln--) {
1954 #print "CHECK<$lines[$ln - 1]\n"; 1954 #print "CHECK<$lines[$ln - 1]\n";
1955 # we have a preceeding printk if it ends 1955 # we have a preceding printk if it ends
1956 # with "\n" ignore it, else it is to blame 1956 # with "\n" ignore it, else it is to blame
1957 if ($lines[$ln - 1] =~ m{\bprintk\(}) { 1957 if ($lines[$ln - 1] =~ m{\bprintk\(}) {
1958 if ($rawlines[$ln - 1] !~ m{\\n"}) { 1958 if ($rawlines[$ln - 1] !~ m{\\n"}) {
@@ -2044,7 +2044,7 @@ sub process {
2044 for (my $n = 0; $n < $#elements; $n += 2) { 2044 for (my $n = 0; $n < $#elements; $n += 2) {
2045 $off += length($elements[$n]); 2045 $off += length($elements[$n]);
2046 2046
2047 # Pick up the preceeding and succeeding characters. 2047 # Pick up the preceding and succeeding characters.
2048 my $ca = substr($opline, 0, $off); 2048 my $ca = substr($opline, 0, $off);
2049 my $cc = ''; 2049 my $cc = '';
2050 if (length($opline) >= ($off + length($elements[$n + 1]))) { 2050 if (length($opline) >= ($off + length($elements[$n + 1]))) {
@@ -2804,9 +2804,9 @@ sub process {
2804 WARN("consider using a completion\n" . $herecurr); 2804 WARN("consider using a completion\n" . $herecurr);
2805 2805
2806 } 2806 }
2807# recommend strict_strto* over simple_strto* 2807# recommend kstrto* over simple_strto*
2808 if ($line =~ /\bsimple_(strto.*?)\s*\(/) { 2808 if ($line =~ /\bsimple_(strto.*?)\s*\(/) {
2809 WARN("consider using strict_$1 in preference to simple_$1\n" . $herecurr); 2809 WARN("consider using kstrto* in preference to simple_$1\n" . $herecurr);
2810 } 2810 }
2811# check for __initcall(), use device_initcall() explicitly please 2811# check for __initcall(), use device_initcall() explicitly please
2812 if ($line =~ /^.\s*__initcall\s*\(/) { 2812 if ($line =~ /^.\s*__initcall\s*\(/) {
@@ -2902,6 +2902,11 @@ sub process {
2902 $line =~ /DEVICE_ATTR.*S_IWUGO/ ) { 2902 $line =~ /DEVICE_ATTR.*S_IWUGO/ ) {
2903 WARN("Exporting world writable files is usually an error. Consider more restrictive permissions.\n" . $herecurr); 2903 WARN("Exporting world writable files is usually an error. Consider more restrictive permissions.\n" . $herecurr);
2904 } 2904 }
2905
2906 # Check for memset with swapped arguments
2907 if ($line =~ /memset.*\,(\ |)(0x|)0(\ |0|)\);/) {
2908 ERROR("memset size is 3rd argument, not the second.\n" . $herecurr);
2909 }
2905 } 2910 }
2906 2911
2907 # If we have no input at all, then there is nothing to report on 2912 # If we have no input at all, then there is nothing to report on
@@ -2944,6 +2949,7 @@ sub process {
2944 if ($rpt_cleaners) { 2949 if ($rpt_cleaners) {
2945 print "NOTE: whitespace errors detected, you may wish to use scripts/cleanpatch or\n"; 2950 print "NOTE: whitespace errors detected, you may wish to use scripts/cleanpatch or\n";
2946 print " scripts/cleanfile\n\n"; 2951 print " scripts/cleanfile\n\n";
2952 $rpt_cleaners = 0;
2947 } 2953 }
2948 } 2954 }
2949 2955