GNU Linux-libre 5.10.217-gnu1
[releases.git] / scripts / coccinelle / api / platform_get_irq.cocci
1 // SPDX-License-Identifier: GPL-2.0
2 /// Remove dev_err() messages after platform_get_irq*() failures
3 //
4 // Confidence: Medium
5 // Options: --include-headers
6
7 virtual patch
8 virtual context
9 virtual org
10 virtual report
11
12 @depends on context@
13 expression ret;
14 struct platform_device *E;
15 @@
16
17 ret =
18 (
19 platform_get_irq
20 |
21 platform_get_irq_byname
22 )(E, ...);
23
24 if ( \( ret < 0 \| ret <= 0 \) )
25 {
26 (
27 if (ret != -EPROBE_DEFER)
28 { ...
29 *dev_err(...);
30 ... }
31 |
32 ...
33 *dev_err(...);
34 )
35 ...
36 }
37
38 @depends on patch@
39 expression ret;
40 struct platform_device *E;
41 @@
42
43 ret =
44 (
45 platform_get_irq
46 |
47 platform_get_irq_byname
48 )(E, ...);
49
50 if ( \( ret < 0 \| ret <= 0 \) )
51 {
52 (
53 -if (ret != -EPROBE_DEFER)
54 -{ ...
55 -dev_err(...);
56 -... }
57 |
58 ...
59 -dev_err(...);
60 )
61 ...
62 }
63
64 @r depends on org || report@
65 position p1;
66 expression ret;
67 struct platform_device *E;
68 @@
69
70 ret =
71 (
72 platform_get_irq
73 |
74 platform_get_irq_byname
75 )(E, ...);
76
77 if ( \( ret < 0 \| ret <= 0 \) )
78 {
79 (
80 if (ret != -EPROBE_DEFER)
81 { ...
82 dev_err@p1(...);
83 ... }
84 |
85 ...
86 dev_err@p1(...);
87 )
88 ...
89 }
90
91 @script:python depends on org@
92 p1 << r.p1;
93 @@
94
95 cocci.print_main(p1)
96
97 @script:python depends on report@
98 p1 << r.p1;
99 @@
100
101 msg = "line %s is redundant because platform_get_irq() already prints an error" % (p1[0].line)
102 coccilib.report.print_report(p1[0],msg)