Merge branch 'for-john' of git://x-git.kernel.org/pub/scm/linux/kernel/git/jberg...
[firefly-linux-kernel-4.4.55.git] / scripts / coccinelle / misc / warn.cocci
1 /// Use WARN(1,...) rather than printk followed by WARN_ON(1)
2 ///
3 // Confidence: High
4 // Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.  GPLv2.
5 // Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.  GPLv2.
6 // URL: http://coccinelle.lip6.fr/
7 // Comments:
8 // Options: -no_includes -include_headers
9
10 virtual patch
11 virtual context
12 virtual org
13 virtual report
14
15 @bad1@
16 position p;
17 @@
18
19 printk(...);
20 printk@p(...);
21 WARN_ON(1);
22
23 @r1 depends on context || report || org@
24 position p != bad1.p;
25 @@
26
27  printk@p(...);
28 *WARN_ON(1);
29
30 @script:python depends on org@
31 p << r1.p;
32 @@
33
34 cocci.print_main("printk + WARN_ON can be just WARN",p)
35
36 @script:python depends on report@
37 p << r1.p;
38 @@
39
40 msg = "SUGGESTION: printk + WARN_ON can be just WARN"
41 coccilib.report.print_report(p[0],msg)
42
43 @ok1 depends on patch@
44 expression list es;
45 position p != bad1.p;
46 @@
47
48 -printk@p(
49 +WARN(1,
50   es);
51 -WARN_ON(1);
52
53 @depends on patch@
54 expression list ok1.es;
55 @@
56
57 if (...)
58 - {
59   WARN(1,es);
60 - }
61
62 // --------------------------------------------------------------------
63
64 @bad2@
65 position p;
66 @@
67
68 printk(...);
69 printk@p(...);
70 WARN_ON_ONCE(1);
71
72 @r2 depends on context || report || org@
73 position p != bad1.p;
74 @@
75
76  printk@p(...);
77 *WARN_ON_ONCE(1);
78
79 @script:python depends on org@
80 p << r2.p;
81 @@
82
83 cocci.print_main("printk + WARN_ON_ONCE can be just WARN_ONCE",p)
84
85 @script:python depends on report@
86 p << r2.p;
87 @@
88
89 msg = "SUGGESTION: printk + WARN_ON_ONCE can be just WARN_ONCE"
90 coccilib.report.print_report(p[0],msg)
91
92 @ok2 depends on patch@
93 expression list es;
94 position p != bad2.p;
95 @@
96
97 -printk@p(
98 +WARN_ONCE(1,
99   es);
100 -WARN_ON_ONCE(1);
101
102 @depends on patch@
103 expression list ok2.es;
104 @@
105
106 if (...)
107 - {
108   WARN_ONCE(1,es);
109 - }