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