aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scripts/coccinelle/misc/of_table.cocci62
1 files changed, 62 insertions, 0 deletions
diff --git a/scripts/coccinelle/misc/of_table.cocci b/scripts/coccinelle/misc/of_table.cocci
new file mode 100644
index 000000000000..3c934046a060
--- /dev/null
+++ b/scripts/coccinelle/misc/of_table.cocci
@@ -0,0 +1,62 @@
1/// Make sure of_device_id tables are NULL terminated
2//
3// Keywords: of_table
4// Confidence: Medium
5// Options: --include-headers
6
7virtual patch
8virtual context
9virtual org
10virtual report
11
12@depends on context@
13identifier var, arr;
14expression E;
15@@
16struct of_device_id arr[] = {
17 ...,
18 {
19 .var = E,
20* }
21};
22
23@depends on patch@
24identifier var, arr;
25expression E;
26@@
27struct of_device_id arr[] = {
28 ...,
29 {
30 .var = E,
31- }
32+ },
33+ { }
34};
35
36@r depends on org || report@
37position p1;
38identifier var, arr;
39expression E;
40@@
41struct of_device_id arr[] = {
42 ...,
43 {
44 .var = E,
45 }
46 @p1
47};
48
49@script:python depends on org@
50p1 << r.p1;
51arr << r.arr;
52@@
53
54cocci.print_main(arr,p1)
55
56@script:python depends on report@
57p1 << r.p1;
58arr << r.arr;
59@@
60
61msg = "%s is not NULL terminated at line %s" % (arr, p1[0].line)
62coccilib.report.print_report(p1[0],msg)