diff options
Diffstat (limited to 'scripts/checkpatch.pl')
-rwxr-xr-x | scripts/checkpatch.pl | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 7bed4ed2c519..45eb0ae98eba 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl | |||
@@ -10,7 +10,7 @@ use strict; | |||
10 | my $P = $0; | 10 | my $P = $0; |
11 | $P =~ s@.*/@@g; | 11 | $P =~ s@.*/@@g; |
12 | 12 | ||
13 | my $V = '0.26'; | 13 | my $V = '0.27'; |
14 | 14 | ||
15 | use Getopt::Long qw(:config no_auto_abbrev); | 15 | use Getopt::Long qw(:config no_auto_abbrev); |
16 | 16 | ||
@@ -411,13 +411,15 @@ sub ctx_statement_block { | |||
411 | 411 | ||
412 | my $type = ''; | 412 | my $type = ''; |
413 | my $level = 0; | 413 | my $level = 0; |
414 | my @stack = ([$type, $level]); | 414 | my @stack = (); |
415 | my $p; | 415 | my $p; |
416 | my $c; | 416 | my $c; |
417 | my $len = 0; | 417 | my $len = 0; |
418 | 418 | ||
419 | my $remainder; | 419 | my $remainder; |
420 | while (1) { | 420 | while (1) { |
421 | @stack = (['', 0]) if ($#stack == -1); | ||
422 | |||
421 | #warn "CSB: blk<$blk> remain<$remain>\n"; | 423 | #warn "CSB: blk<$blk> remain<$remain>\n"; |
422 | # If we are about to drop off the end, pull in more | 424 | # If we are about to drop off the end, pull in more |
423 | # context. | 425 | # context. |
@@ -1663,7 +1665,7 @@ sub process { | |||
1663 | # Should not end with a space. | 1665 | # Should not end with a space. |
1664 | $to =~ s/\s+$//; | 1666 | $to =~ s/\s+$//; |
1665 | # '*'s should not have spaces between. | 1667 | # '*'s should not have spaces between. |
1666 | while ($to =~ s/(.)\s\*/$1\*/) { | 1668 | while ($to =~ s/\*\s+\*/\*\*/) { |
1667 | } | 1669 | } |
1668 | 1670 | ||
1669 | #print "from<$from> to<$to>\n"; | 1671 | #print "from<$from> to<$to>\n"; |
@@ -1678,7 +1680,7 @@ sub process { | |||
1678 | # Should not end with a space. | 1680 | # Should not end with a space. |
1679 | $to =~ s/\s+$//; | 1681 | $to =~ s/\s+$//; |
1680 | # '*'s should not have spaces between. | 1682 | # '*'s should not have spaces between. |
1681 | while ($to =~ s/(.)\s\*/$1\*/) { | 1683 | while ($to =~ s/\*\s+\*/\*\*/) { |
1682 | } | 1684 | } |
1683 | # Modifiers should have spaces. | 1685 | # Modifiers should have spaces. |
1684 | $to =~ s/(\b$Modifier$)/$1 /; | 1686 | $to =~ s/(\b$Modifier$)/$1 /; |
@@ -2014,7 +2016,11 @@ sub process { | |||
2014 | 2016 | ||
2015 | # Flatten any parentheses | 2017 | # Flatten any parentheses |
2016 | $value =~ s/\)\(/\) \(/g; | 2018 | $value =~ s/\)\(/\) \(/g; |
2017 | while ($value !~ /(?:$Ident|-?$Constant)\s*$Compare\s*(?:$Ident|-?$Constant)/ && $value =~ s/\([^\(\)]*\)/1/) { | 2019 | while ($value =~ s/\[[^\{\}]*\]/1/ || |
2020 | $value !~ /(?:$Ident|-?$Constant)\s* | ||
2021 | $Compare\s* | ||
2022 | (?:$Ident|-?$Constant)/x && | ||
2023 | $value =~ s/\([^\(\)]*\)/1/) { | ||
2018 | } | 2024 | } |
2019 | 2025 | ||
2020 | if ($value =~ /^(?:$Ident|-?$Constant)$/) { | 2026 | if ($value =~ /^(?:$Ident|-?$Constant)$/) { |
@@ -2102,6 +2108,11 @@ sub process { | |||
2102 | ERROR("trailing statements should be on next line\n" . $herecurr); | 2108 | ERROR("trailing statements should be on next line\n" . $herecurr); |
2103 | } | 2109 | } |
2104 | } | 2110 | } |
2111 | # if should not continue a brace | ||
2112 | if ($line =~ /}\s*if\b/) { | ||
2113 | ERROR("trailing statements should be on next line\n" . | ||
2114 | $herecurr); | ||
2115 | } | ||
2105 | # case and default should not have general statements after them | 2116 | # case and default should not have general statements after them |
2106 | if ($line =~ /^.\s*(?:case\s*.*|default\s*):/g && | 2117 | if ($line =~ /^.\s*(?:case\s*.*|default\s*):/g && |
2107 | $line !~ /\G(?: | 2118 | $line !~ /\G(?: |
@@ -2516,9 +2527,10 @@ sub process { | |||
2516 | WARN("please use device_initcall() instead of __initcall()\n" . $herecurr); | 2527 | WARN("please use device_initcall() instead of __initcall()\n" . $herecurr); |
2517 | } | 2528 | } |
2518 | # check for struct file_operations, ensure they are const. | 2529 | # check for struct file_operations, ensure they are const. |
2519 | if ($line =~ /\bstruct\s+file_operations\b/ && | 2530 | if ($line !~ /\bconst\b/ && |
2520 | $line !~ /\bconst\b/) { | 2531 | $line =~ /\bstruct\s+(file_operations|seq_operations)\b/) { |
2521 | WARN("struct file_operations should normally be const\n" . $herecurr); | 2532 | WARN("struct $1 should normally be const\n" . |
2533 | $herecurr); | ||
2522 | } | 2534 | } |
2523 | 2535 | ||
2524 | # use of NR_CPUS is usually wrong | 2536 | # use of NR_CPUS is usually wrong |