aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/checkpatch.pl
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/checkpatch.pl')
-rwxr-xr-xscripts/checkpatch.pl26
1 files changed, 24 insertions, 2 deletions
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 2bb08a962ce3..747bcd768da0 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -1931,6 +1931,12 @@ sub process {
1931 "use the SSYNC() macro in asm/blackfin.h\n" . $herevet); 1931 "use the SSYNC() macro in asm/blackfin.h\n" . $herevet);
1932 } 1932 }
1933 1933
1934# check for old HOTPLUG __dev<foo> section markings
1935 if ($line =~ /\b(__dev(init|exit)(data|const|))\b/) {
1936 WARN("HOTPLUG_SECTION",
1937 "Using $1 is unnecessary\n" . $herecurr);
1938 }
1939
1934# Check for potential 'bare' types 1940# Check for potential 'bare' types
1935 my ($stat, $cond, $line_nr_next, $remain_next, $off_next, 1941 my ($stat, $cond, $line_nr_next, $remain_next, $off_next,
1936 $realline_next); 1942 $realline_next);
@@ -2430,6 +2436,15 @@ sub process {
2430 "Prefer pr_warn(... to pr_warning(...\n" . $herecurr); 2436 "Prefer pr_warn(... to pr_warning(...\n" . $herecurr);
2431 } 2437 }
2432 2438
2439 if ($line =~ /\bdev_printk\s*\(\s*KERN_([A-Z]+)/) {
2440 my $orig = $1;
2441 my $level = lc($orig);
2442 $level = "warn" if ($level eq "warning");
2443 $level = "dbg" if ($level eq "debug");
2444 WARN("PREFER_DEV_LEVEL",
2445 "Prefer dev_$level(... to dev_printk(KERN_$orig, ...\n" . $herecurr);
2446 }
2447
2433# function brace can't be on same line, except for #defines of do while, 2448# function brace can't be on same line, except for #defines of do while,
2434# or if closed on same line 2449# or if closed on same line
2435 if (($line=~/$Type\s*$Ident\(.*\).*\s{/) and 2450 if (($line=~/$Type\s*$Ident\(.*\).*\s{/) and
@@ -2915,6 +2930,7 @@ sub process {
2915 my $var = $1; 2930 my $var = $1;
2916 if ($var !~ /$Constant/ && 2931 if ($var !~ /$Constant/ &&
2917 $var =~ /[A-Z]\w*[a-z]|[a-z]\w*[A-Z]/ && 2932 $var =~ /[A-Z]\w*[a-z]|[a-z]\w*[A-Z]/ &&
2933 $var !~ /^Page[A-Z]/ &&
2918 !defined $camelcase{$var}) { 2934 !defined $camelcase{$var}) {
2919 $camelcase{$var} = 1; 2935 $camelcase{$var} = 1;
2920 WARN("CAMELCASE", 2936 WARN("CAMELCASE",
@@ -3237,9 +3253,9 @@ sub process {
3237 } 3253 }
3238 3254
3239# prefer usleep_range over udelay 3255# prefer usleep_range over udelay
3240 if ($line =~ /\budelay\s*\(\s*(\w+)\s*\)/) { 3256 if ($line =~ /\budelay\s*\(\s*(\d+)\s*\)/) {
3241 # ignore udelay's < 10, however 3257 # ignore udelay's < 10, however
3242 if (! (($1 =~ /(\d+)/) && ($1 < 10)) ) { 3258 if (! ($1 < 10) ) {
3243 CHK("USLEEP_RANGE", 3259 CHK("USLEEP_RANGE",
3244 "usleep_range is preferred over udelay; see Documentation/timers/timers-howto.txt\n" . $line); 3260 "usleep_range is preferred over udelay; see Documentation/timers/timers-howto.txt\n" . $line);
3245 } 3261 }
@@ -3460,6 +3476,12 @@ sub process {
3460 "unnecessary cast may hide bugs, see http://c-faq.com/malloc/mallocnocast.html\n" . $herecurr); 3476 "unnecessary cast may hide bugs, see http://c-faq.com/malloc/mallocnocast.html\n" . $herecurr);
3461 } 3477 }
3462 3478
3479# check for alloc argument mismatch
3480 if ($line =~ /\b(kcalloc|kmalloc_array)\s*\(\s*sizeof\b/) {
3481 WARN("ALLOC_ARRAY_ARGS",
3482 "$1 uses number as first arg, sizeof is generally wrong\n" . $herecurr);
3483 }
3484
3463# check for multiple semicolons 3485# check for multiple semicolons
3464 if ($line =~ /;\s*;\s*$/) { 3486 if ($line =~ /;\s*;\s*$/) {
3465 WARN("ONE_SEMICOLON", 3487 WARN("ONE_SEMICOLON",