diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-30 20:25:34 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-07-30 20:25:34 -0400 |
commit | 27c1ee3f929555b71fa39ec0d81a7e7185de1b16 (patch) | |
tree | 42e40bdfe4efac660d650658019391536ce67a42 /scripts | |
parent | 37cd9600a9e20359b0283983c9e3a55d84347168 (diff) | |
parent | 086ff4b3a7fb9cdf41e6a5d0ccd99b86d84633a1 (diff) |
Merge branch 'akpm' (Andrew's patch-bomb)
Merge Andrew's first set of patches:
"Non-MM patches:
- lots of misc bits
- tree-wide have_clk() cleanups
- quite a lot of printk tweaks. I draw your attention to "printk:
convert the format for KERN_<LEVEL> to a 2 byte pattern" which
looks a bit scary. But afaict it's solid.
- backlight updates
- lib/ feature work (notably the addition and use of memweight())
- checkpatch updates
- rtc updates
- nilfs updates
- fatfs updates (partial, still waiting for acks)
- kdump, proc, fork, IPC, sysctl, taskstats, pps, etc
- new fault-injection feature work"
* Merge emailed patches from Andrew Morton <akpm@linux-foundation.org>: (128 commits)
drivers/misc/lkdtm.c: fix missing allocation failure check
lib/scatterlist: do not re-write gfp_flags in __sg_alloc_table()
fault-injection: add tool to run command with failslab or fail_page_alloc
fault-injection: add selftests for cpu and memory hotplug
powerpc: pSeries reconfig notifier error injection module
memory: memory notifier error injection module
PM: PM notifier error injection module
cpu: rewrite cpu-notifier-error-inject module
fault-injection: notifier error injection
c/r: fcntl: add F_GETOWNER_UIDS option
resource: make sure requested range is included in the root range
include/linux/aio.h: cpp->C conversions
fs: cachefiles: add support for large files in filesystem caching
pps: return PTR_ERR on error in device_create
taskstats: check nla_reserve() return
sysctl: suppress kmemleak messages
ipc: use Kconfig options for __ARCH_WANT_[COMPAT_]IPC_PARSE_VERSION
ipc: compat: use signed size_t types for msgsnd and msgrcv
ipc: allow compat IPC version field parsing if !ARCH_WANT_OLD_COMPAT_IPC
ipc: add COMPAT_SHMLBA support
...
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/checkpatch.pl | 71 |
1 files changed, 68 insertions, 3 deletions
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index e5bd60ff48e3..913d6bdfdda3 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl | |||
@@ -1600,13 +1600,17 @@ sub process { | |||
1600 | 1600 | ||
1601 | # Check signature styles | 1601 | # Check signature styles |
1602 | if (!$in_header_lines && | 1602 | if (!$in_header_lines && |
1603 | $line =~ /^(\s*)($signature_tags)(\s*)(.*)/) { | 1603 | $line =~ /^(\s*)([a-z0-9_-]+by:|$signature_tags)(\s*)(.*)/i) { |
1604 | my $space_before = $1; | 1604 | my $space_before = $1; |
1605 | my $sign_off = $2; | 1605 | my $sign_off = $2; |
1606 | my $space_after = $3; | 1606 | my $space_after = $3; |
1607 | my $email = $4; | 1607 | my $email = $4; |
1608 | my $ucfirst_sign_off = ucfirst(lc($sign_off)); | 1608 | my $ucfirst_sign_off = ucfirst(lc($sign_off)); |
1609 | 1609 | ||
1610 | if ($sign_off !~ /$signature_tags/) { | ||
1611 | WARN("BAD_SIGN_OFF", | ||
1612 | "Non-standard signature: $sign_off\n" . $herecurr); | ||
1613 | } | ||
1610 | if (defined $space_before && $space_before ne "") { | 1614 | if (defined $space_before && $space_before ne "") { |
1611 | WARN("BAD_SIGN_OFF", | 1615 | WARN("BAD_SIGN_OFF", |
1612 | "Do not use whitespace before $ucfirst_sign_off\n" . $herecurr); | 1616 | "Do not use whitespace before $ucfirst_sign_off\n" . $herecurr); |
@@ -1848,8 +1852,8 @@ sub process { | |||
1848 | 1852 | ||
1849 | my $pos = pos_last_openparen($rest); | 1853 | my $pos = pos_last_openparen($rest); |
1850 | if ($pos >= 0) { | 1854 | if ($pos >= 0) { |
1851 | $line =~ /^\+([ \t]*)/; | 1855 | $line =~ /^(\+| )([ \t]*)/; |
1852 | my $newindent = $1; | 1856 | my $newindent = $2; |
1853 | 1857 | ||
1854 | my $goodtabindent = $oldindent . | 1858 | my $goodtabindent = $oldindent . |
1855 | "\t" x ($pos / 8) . | 1859 | "\t" x ($pos / 8) . |
@@ -2984,6 +2988,45 @@ sub process { | |||
2984 | } | 2988 | } |
2985 | } | 2989 | } |
2986 | 2990 | ||
2991 | # do {} while (0) macro tests: | ||
2992 | # single-statement macros do not need to be enclosed in do while (0) loop, | ||
2993 | # macro should not end with a semicolon | ||
2994 | if ($^V && $^V ge 5.10.0 && | ||
2995 | $realfile !~ m@/vmlinux.lds.h$@ && | ||
2996 | $line =~ /^.\s*\#\s*define\s+$Ident(\()?/) { | ||
2997 | my $ln = $linenr; | ||
2998 | my $cnt = $realcnt; | ||
2999 | my ($off, $dstat, $dcond, $rest); | ||
3000 | my $ctx = ''; | ||
3001 | ($dstat, $dcond, $ln, $cnt, $off) = | ||
3002 | ctx_statement_block($linenr, $realcnt, 0); | ||
3003 | $ctx = $dstat; | ||
3004 | |||
3005 | $dstat =~ s/\\\n.//g; | ||
3006 | |||
3007 | if ($dstat =~ /^\+\s*#\s*define\s+$Ident\s*${balanced_parens}\s*do\s*{(.*)\s*}\s*while\s*\(\s*0\s*\)\s*([;\s]*)\s*$/) { | ||
3008 | my $stmts = $2; | ||
3009 | my $semis = $3; | ||
3010 | |||
3011 | $ctx =~ s/\n*$//; | ||
3012 | my $cnt = statement_rawlines($ctx); | ||
3013 | my $herectx = $here . "\n"; | ||
3014 | |||
3015 | for (my $n = 0; $n < $cnt; $n++) { | ||
3016 | $herectx .= raw_line($linenr, $n) . "\n"; | ||
3017 | } | ||
3018 | |||
3019 | if (($stmts =~ tr/;/;/) == 1) { | ||
3020 | WARN("SINGLE_STATEMENT_DO_WHILE_MACRO", | ||
3021 | "Single statement macros should not use a do {} while (0) loop\n" . "$herectx"); | ||
3022 | } | ||
3023 | if (defined $semis && $semis ne "") { | ||
3024 | WARN("DO_WHILE_MACRO_WITH_TRAILING_SEMICOLON", | ||
3025 | "do {} while (0) macros should not be semicolon terminated\n" . "$herectx"); | ||
3026 | } | ||
3027 | } | ||
3028 | } | ||
3029 | |||
2987 | # make sure symbols are always wrapped with VMLINUX_SYMBOL() ... | 3030 | # make sure symbols are always wrapped with VMLINUX_SYMBOL() ... |
2988 | # all assignments may have only one of the following with an assignment: | 3031 | # all assignments may have only one of the following with an assignment: |
2989 | # . | 3032 | # . |
@@ -3261,6 +3304,12 @@ sub process { | |||
3261 | "sizeof(& should be avoided\n" . $herecurr); | 3304 | "sizeof(& should be avoided\n" . $herecurr); |
3262 | } | 3305 | } |
3263 | 3306 | ||
3307 | # check for sizeof without parenthesis | ||
3308 | if ($line =~ /\bsizeof\s+((?:\*\s*|)$Lval|$Type(?:\s+$Lval|))/) { | ||
3309 | WARN("SIZEOF_PARENTHESIS", | ||
3310 | "sizeof $1 should be sizeof($1)\n" . $herecurr); | ||
3311 | } | ||
3312 | |||
3264 | # check for line continuations in quoted strings with odd counts of " | 3313 | # check for line continuations in quoted strings with odd counts of " |
3265 | if ($rawline =~ /\\$/ && $rawline =~ tr/"/"/ % 2) { | 3314 | if ($rawline =~ /\\$/ && $rawline =~ tr/"/"/ % 2) { |
3266 | WARN("LINE_CONTINUATIONS", | 3315 | WARN("LINE_CONTINUATIONS", |
@@ -3309,6 +3358,22 @@ sub process { | |||
3309 | } | 3358 | } |
3310 | } | 3359 | } |
3311 | 3360 | ||
3361 | # check usleep_range arguments | ||
3362 | if ($^V && $^V ge 5.10.0 && | ||
3363 | defined $stat && | ||
3364 | $stat =~ /^\+(?:.*?)\busleep_range\s*\(\s*($FuncArg)\s*,\s*($FuncArg)\s*\)/) { | ||
3365 | my $min = $1; | ||
3366 | my $max = $7; | ||
3367 | if ($min eq $max) { | ||
3368 | WARN("USLEEP_RANGE", | ||
3369 | "usleep_range should not use min == max args; see Documentation/timers/timers-howto.txt\n" . "$here\n$stat\n"); | ||
3370 | } elsif ($min =~ /^\d+$/ && $max =~ /^\d+$/ && | ||
3371 | $min > $max) { | ||
3372 | WARN("USLEEP_RANGE", | ||
3373 | "usleep_range args reversed, use min then max; see Documentation/timers/timers-howto.txt\n" . "$here\n$stat\n"); | ||
3374 | } | ||
3375 | } | ||
3376 | |||
3312 | # check for new externs in .c files. | 3377 | # check for new externs in .c files. |
3313 | if ($realfile =~ /\.c$/ && defined $stat && | 3378 | if ($realfile =~ /\.c$/ && defined $stat && |
3314 | $stat =~ /^.\s*(?:extern\s+)?$Type\s+($Ident)(\s*)\(/s) | 3379 | $stat =~ /^.\s*(?:extern\s+)?$Type\s+($Ident)(\s*)\(/s) |