diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-28 19:18:59 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-28 19:18:59 -0400 |
commit | e596c79050eafea89cf9fe26b7a807643a2a9904 (patch) | |
tree | 36a0c9b0d4cb149c2c5098be2257639631e5d6c6 /scripts/coccinelle/api/err_cast.cocci | |
parent | 51399a391940e676877c7a791138081f13a0bab7 (diff) | |
parent | 9231d9e02a1f92b52bbb1e4474bfd1903835a993 (diff) |
Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6
* 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6: (39 commits)
Revert "namespace: add source file location exceptions"
Coccinelle: Add contextual message
Coccinelle: Fix documentation
Coccinelle: Find doubled arguments to boolean or bit operators.
Coccinelle: Find nested lock+irqsave functions that use the same flags variables.
namespace: add source file location exceptions
scripts/extract-ikconfig: add support for bzip2, lzma and lzo
kbuild: check return value of asprintf()
scripts/namespace.pl: improve to get more correct results
scripts/namespace.pl: some bug fixes
scripts/namespace.pl: update file exclusion list
scripts/namespace.pl: fix wrong source path
Coccinelle: Use the -no_show_diff option for org and report mode
Coccinelle: Add a new mode named 'chain'
Coccinelle: Use new comment format to explain kfree.cocci
Coccinelle: Improve user information with a new kind of comment
Coccinelle: Update documentation
MAINTAINERS: Coccinelle: Update email address
Documentation/kbuild: modules.txt cleanup
Documentation/kbuild: major edit of modules.txt sections 5-8
...
Diffstat (limited to 'scripts/coccinelle/api/err_cast.cocci')
-rw-r--r-- | scripts/coccinelle/api/err_cast.cocci | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/scripts/coccinelle/api/err_cast.cocci b/scripts/coccinelle/api/err_cast.cocci new file mode 100644 index 000000000000..2ce115000af6 --- /dev/null +++ b/scripts/coccinelle/api/err_cast.cocci | |||
@@ -0,0 +1,56 @@ | |||
1 | /// | ||
2 | /// Use ERR_CAST inlined function instead of ERR_PTR(PTR_ERR(...)) | ||
3 | /// | ||
4 | // Confidence: High | ||
5 | // Copyright: (C) 2009, 2010 Nicolas Palix, DIKU. GPLv2. | ||
6 | // Copyright: (C) 2009, 2010 Julia Lawall, DIKU. GPLv2. | ||
7 | // Copyright: (C) 2009, 2010 Gilles Muller, INRIA/LiP6. GPLv2. | ||
8 | // URL: http://coccinelle.lip6.fr/ | ||
9 | // Options: | ||
10 | // | ||
11 | // Keywords: ERR_PTR, PTR_ERR, ERR_CAST | ||
12 | // Version min: 2.6.25 | ||
13 | // | ||
14 | |||
15 | virtual context | ||
16 | virtual patch | ||
17 | virtual org | ||
18 | virtual report | ||
19 | |||
20 | |||
21 | @ depends on context && !patch && !org && !report@ | ||
22 | expression x; | ||
23 | @@ | ||
24 | |||
25 | * ERR_PTR(PTR_ERR(x)) | ||
26 | |||
27 | @ depends on !context && patch && !org && !report @ | ||
28 | expression x; | ||
29 | @@ | ||
30 | |||
31 | - ERR_PTR(PTR_ERR(x)) | ||
32 | + ERR_CAST(x) | ||
33 | |||
34 | @r depends on !context && !patch && (org || report)@ | ||
35 | expression x; | ||
36 | position p; | ||
37 | @@ | ||
38 | |||
39 | ERR_PTR@p(PTR_ERR(x)) | ||
40 | |||
41 | @script:python depends on org@ | ||
42 | p << r.p; | ||
43 | x << r.x; | ||
44 | @@ | ||
45 | |||
46 | msg="WARNING ERR_CAST can be used with %s" % (x) | ||
47 | msg_safe=msg.replace("[","@(").replace("]",")") | ||
48 | coccilib.org.print_todo(p[0], msg_safe) | ||
49 | |||
50 | @script:python depends on report@ | ||
51 | p << r.p; | ||
52 | x << r.x; | ||
53 | @@ | ||
54 | |||
55 | msg="WARNING: ERR_CAST can be used with %s" % (x) | ||
56 | coccilib.report.print_report(p[0], msg) | ||