rxrpc: Show some more information through /proc files
[linux/fpc-iii.git] / scripts / coccinelle / api / platform_no_drv_owner.cocci
blobc5e3f73f20546513fa18e94ca2fd3f6290265e38
1 /// Remove .owner field if calls are used which set it automatically
2 ///
3 // Confidence: High
4 // Copyright: (C) 2014 Wolfram Sang. GPL v2.
6 virtual patch
7 virtual context
8 virtual org
9 virtual report
11 @match1@
12 declarer name module_i2c_driver;
13 declarer name module_platform_driver;
14 declarer name module_platform_driver_probe;
15 identifier __driver;
18         module_i2c_driver(__driver);
20         module_platform_driver(__driver);
22         module_platform_driver_probe(__driver, ...);
25 @fix1 depends on match1 && patch && !context && !org && !report@
26 identifier match1.__driver;
28         static struct platform_driver __driver = {
29                 .driver = {
30 -                       .owner = THIS_MODULE,
31                 }
32         };
34 @fix1_i2c depends on match1 && patch && !context && !org && !report@
35 identifier match1.__driver;
37         static struct i2c_driver __driver = {
38                 .driver = {
39 -                       .owner = THIS_MODULE,
40                 }
41         };
43 @match2@
44 identifier __driver;
47         platform_driver_register(&__driver)
49         platform_driver_probe(&__driver, ...)
51         platform_create_bundle(&__driver, ...)
53         i2c_add_driver(&__driver)
56 @fix2 depends on match2 && patch && !context && !org && !report@
57 identifier match2.__driver;
59         static struct platform_driver __driver = {
60                 .driver = {
61 -                       .owner = THIS_MODULE,
62                 }
63         };
65 @fix2_i2c depends on match2 && patch && !context && !org && !report@
66 identifier match2.__driver;
68         static struct i2c_driver __driver = {
69                 .driver = {
70 -                       .owner = THIS_MODULE,
71                 }
72         };
74 // ----------------------------------------------------------------------------
76 @fix1_context depends on match1 && !patch && (context || org || report)@
77 identifier match1.__driver;
78 position j0;
81         static struct platform_driver __driver = {
82                 .driver = {
83 *                       .owner@j0 = THIS_MODULE,
84                 }
85         };
87 @fix1_i2c_context depends on match1 && !patch && (context || org || report)@
88 identifier match1.__driver;
89 position j0;
92         static struct i2c_driver __driver = {
93                 .driver = {
94 *                       .owner@j0 = THIS_MODULE,
95                 }
96         };
98 @fix2_context depends on match2 && !patch && (context || org || report)@
99 identifier match2.__driver;
100 position j0;
103         static struct platform_driver __driver = {
104                 .driver = {
105 *                       .owner@j0 = THIS_MODULE,
106                 }
107         };
109 @fix2_i2c_context depends on match2 && !patch && (context || org || report)@
110 identifier match2.__driver;
111 position j0;
114         static struct i2c_driver __driver = {
115                 .driver = {
116 *                       .owner@j0 = THIS_MODULE,
117                 }
118         };
120 // ----------------------------------------------------------------------------
122 @script:python fix1_org depends on org@
123 j0 << fix1_context.j0;
126 msg = "No need to set .owner here. The core will do it."
127 coccilib.org.print_todo(j0[0], msg)
129 @script:python fix1_i2c_org depends on org@
130 j0 << fix1_i2c_context.j0;
133 msg = "No need to set .owner here. The core will do it."
134 coccilib.org.print_todo(j0[0], msg)
136 @script:python fix2_org depends on org@
137 j0 << fix2_context.j0;
140 msg = "No need to set .owner here. The core will do it."
141 coccilib.org.print_todo(j0[0], msg)
143 @script:python fix2_i2c_org depends on org@
144 j0 << fix2_i2c_context.j0;
147 msg = "No need to set .owner here. The core will do it."
148 coccilib.org.print_todo(j0[0], msg)
150 // ----------------------------------------------------------------------------
152 @script:python fix1_report depends on report@
153 j0 << fix1_context.j0;
156 msg = "No need to set .owner here. The core will do it."
157 coccilib.report.print_report(j0[0], msg)
159 @script:python fix1_i2c_report depends on report@
160 j0 << fix1_i2c_context.j0;
163 msg = "No need to set .owner here. The core will do it."
164 coccilib.report.print_report(j0[0], msg)
166 @script:python fix2_report depends on report@
167 j0 << fix2_context.j0;
170 msg = "No need to set .owner here. The core will do it."
171 coccilib.report.print_report(j0[0], msg)
173 @script:python fix2_i2c_report depends on report@
174 j0 << fix2_i2c_context.j0;
177 msg = "No need to set .owner here. The core will do it."
178 coccilib.report.print_report(j0[0], msg)