Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / scripts / coccinelle / misc / of_table.cocci
1 /// Make sure of_device_id tables are NULL terminated
2 //
3 // Keywords: of_table
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 identifier var, arr;
14 expression E;
15 @@
16 struct of_device_id arr[] = {
17         ...,
18         {
19         .var = E,
20 *       }
21 };
22
23 @depends on patch@
24 identifier var, arr;
25 expression E;
26 @@
27 struct of_device_id arr[] = {
28         ...,
29         {
30         .var = E,
31 -       }
32 +       },
33 +       { }
34 };
35
36 @r depends on org || report@
37 position p1;
38 identifier var, arr;
39 expression E;
40 @@
41 struct of_device_id arr[] = {
42         ...,
43         {
44         .var = E,
45         }
46         @p1
47 };
48
49 @script:python depends on org@
50 p1 << r.p1;
51 arr << r.arr;
52 @@
53
54 cocci.print_main(arr,p1)
55
56 @script:python depends on report@
57 p1 << r.p1;
58 arr << r.arr;
59 @@
60
61 msg = "%s is not NULL terminated at line %s" % (arr, p1[0].line)
62 coccilib.report.print_report(p1[0],msg)