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