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
7virtual patch
8virtual context
9virtual org
10virtual report
11
12@depends on context@
13expression ret;
14struct platform_device *E;
15@@
16
17ret =
18(
19platform_get_irq
20|
21platform_get_irq_byname
22)(E, ...);
23
24if ( \( ret < 0 \| ret <= 0 \) )
25{
26(
27if (ret != -EPROBE_DEFER)
28{ ...
29*dev_err(...);
30... }
31|
32...
33*dev_err(...);
34)
35...
36}
37
38@depends on patch@
39expression ret;
40struct platform_device *E;
41@@
42
43ret =
44(
45platform_get_irq
46|
47platform_get_irq_byname
48)(E, ...);
49
50if ( \( 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@
65position p1;
66expression ret;
67struct platform_device *E;
68@@
69
70ret =
71(
72platform_get_irq
73|
74platform_get_irq_byname
75)(E, ...);
76
77if ( \( ret < 0 \| ret <= 0 \) )
78{
79(
80if (ret != -EPROBE_DEFER)
81{ ...
82dev_err@p1(...);
83... }
84|
85...
86dev_err@p1(...);
87)
88...
89}
90
91@script:python depends on org@
92p1 << r.p1;
93@@
94
95cocci.print_main(p1)
96
97@script:python depends on report@
98p1 << r.p1;
99@@
100
101msg = "line %s is redundant because platform_get_irq() already prints an error" % (p1[0].line)
102coccilib.report.print_report(p1[0],msg)
103