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