]>
Commit | Line | Data |
---|---|---|
7f904d7e | 1 | // SPDX-License-Identifier: GPL-2.0-only |
1fc524d7 SS |
2 | /// |
3 | /// Use *_pool_zalloc rather than *_pool_alloc followed by memset with 0 | |
4 | /// | |
7f904d7e | 5 | // Copyright: (C) 2015 Intel Corp. |
1fc524d7 SS |
6 | // Options: --no-includes --include-headers |
7 | // | |
8 | // Keywords: dma_pool_zalloc, pci_pool_zalloc | |
9 | // | |
10 | ||
11 | virtual context | |
12 | virtual patch | |
13 | virtual org | |
14 | virtual report | |
15 | ||
16 | //---------------------------------------------------------- | |
17 | // For context mode | |
18 | //---------------------------------------------------------- | |
19 | ||
20 | @depends on context@ | |
21 | expression x; | |
22 | statement S; | |
23 | @@ | |
24 | ||
25 | * x = \(dma_pool_alloc\|pci_pool_alloc\)(...); | |
26 | if ((x==NULL) || ...) S | |
27 | * memset(x,0, ...); | |
28 | ||
29 | //---------------------------------------------------------- | |
30 | // For patch mode | |
31 | //---------------------------------------------------------- | |
32 | ||
33 | @depends on patch@ | |
34 | expression x; | |
35 | expression a,b,c; | |
36 | statement S; | |
37 | @@ | |
38 | ||
39 | - x = dma_pool_alloc(a,b,c); | |
40 | + x = dma_pool_zalloc(a,b,c); | |
41 | if ((x==NULL) || ...) S | |
42 | - memset(x,0,...); | |
43 | ||
44 | @depends on patch@ | |
45 | expression x; | |
46 | expression a,b,c; | |
47 | statement S; | |
48 | @@ | |
49 | ||
50 | - x = pci_pool_alloc(a,b,c); | |
51 | + x = pci_pool_zalloc(a,b,c); | |
52 | if ((x==NULL) || ...) S | |
53 | - memset(x,0,...); | |
54 | ||
55 | //---------------------------------------------------------- | |
56 | // For org and report mode | |
57 | //---------------------------------------------------------- | |
58 | ||
59 | @r depends on org || report@ | |
60 | expression x; | |
61 | expression a,b,c; | |
62 | statement S; | |
63 | position p; | |
64 | @@ | |
65 | ||
66 | x = @p\(dma_pool_alloc\|pci_pool_alloc\)(a,b,c); | |
67 | if ((x==NULL) || ...) S | |
68 | memset(x,0, ...); | |
69 | ||
70 | @script:python depends on org@ | |
71 | p << r.p; | |
72 | x << r.x; | |
73 | @@ | |
74 | ||
75 | msg="%s" % (x) | |
76 | msg_safe=msg.replace("[","@(").replace("]",")") | |
77 | coccilib.org.print_todo(p[0], msg_safe) | |
78 | ||
79 | @script:python depends on report@ | |
80 | p << r.p; | |
81 | x << r.x; | |
82 | @@ | |
83 | ||
84 | msg="WARNING: *_pool_zalloc should be used for %s, instead of *_pool_alloc/memset" % (x) | |
85 | coccilib.report.print_report(p[0], msg) |