xref: /utopia/UTPA2-700.0.x/projects/build/scripts/coccinelle/api/alloc/drop_kmalloc_cast.cocci (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi///
2*53ee8cc1Swenshuai.xi/// Casting (void *) value returned by kmalloc is useless
3*53ee8cc1Swenshuai.xi/// as mentioned in Documentation/CodingStyle, Chap 14.
4*53ee8cc1Swenshuai.xi///
5*53ee8cc1Swenshuai.xi// Confidence: High
6*53ee8cc1Swenshuai.xi// Copyright: 2009,2010 Nicolas Palix, DIKU.  GPLv2.
7*53ee8cc1Swenshuai.xi// URL: http://coccinelle.lip6.fr/
8*53ee8cc1Swenshuai.xi// Options: -no_includes -include_headers
9*53ee8cc1Swenshuai.xi//
10*53ee8cc1Swenshuai.xi// Keywords: kmalloc, kzalloc, kcalloc
11*53ee8cc1Swenshuai.xi// Version min: < 2.6.12 kmalloc
12*53ee8cc1Swenshuai.xi// Version min: < 2.6.12 kcalloc
13*53ee8cc1Swenshuai.xi// Version min:   2.6.14 kzalloc
14*53ee8cc1Swenshuai.xi//
15*53ee8cc1Swenshuai.xi
16*53ee8cc1Swenshuai.xivirtual context
17*53ee8cc1Swenshuai.xivirtual patch
18*53ee8cc1Swenshuai.xivirtual org
19*53ee8cc1Swenshuai.xivirtual report
20*53ee8cc1Swenshuai.xi
21*53ee8cc1Swenshuai.xi//----------------------------------------------------------
22*53ee8cc1Swenshuai.xi//  For context mode
23*53ee8cc1Swenshuai.xi//----------------------------------------------------------
24*53ee8cc1Swenshuai.xi
25*53ee8cc1Swenshuai.xi@depends on context@
26*53ee8cc1Swenshuai.xitype T;
27*53ee8cc1Swenshuai.xi@@
28*53ee8cc1Swenshuai.xi
29*53ee8cc1Swenshuai.xi* (T *)
30*53ee8cc1Swenshuai.xi  \(kmalloc\|kzalloc\|kcalloc\)(...)
31*53ee8cc1Swenshuai.xi
32*53ee8cc1Swenshuai.xi//----------------------------------------------------------
33*53ee8cc1Swenshuai.xi//  For patch mode
34*53ee8cc1Swenshuai.xi//----------------------------------------------------------
35*53ee8cc1Swenshuai.xi
36*53ee8cc1Swenshuai.xi@depends on patch@
37*53ee8cc1Swenshuai.xitype T;
38*53ee8cc1Swenshuai.xi@@
39*53ee8cc1Swenshuai.xi
40*53ee8cc1Swenshuai.xi- (T *)
41*53ee8cc1Swenshuai.xi  \(kmalloc\|kzalloc\|kcalloc\)(...)
42*53ee8cc1Swenshuai.xi
43*53ee8cc1Swenshuai.xi//----------------------------------------------------------
44*53ee8cc1Swenshuai.xi//  For org and report mode
45*53ee8cc1Swenshuai.xi//----------------------------------------------------------
46*53ee8cc1Swenshuai.xi
47*53ee8cc1Swenshuai.xi@r depends on org || report@
48*53ee8cc1Swenshuai.xitype T;
49*53ee8cc1Swenshuai.xiposition p;
50*53ee8cc1Swenshuai.xi@@
51*53ee8cc1Swenshuai.xi
52*53ee8cc1Swenshuai.xi (T@p *)\(kmalloc\|kzalloc\|kcalloc\)(...)
53*53ee8cc1Swenshuai.xi
54*53ee8cc1Swenshuai.xi@script:python depends on org@
55*53ee8cc1Swenshuai.xip << r.p;
56*53ee8cc1Swenshuai.xit << r.T;
57*53ee8cc1Swenshuai.xi@@
58*53ee8cc1Swenshuai.xi
59*53ee8cc1Swenshuai.xicoccilib.org.print_safe_todo(p[0], t)
60*53ee8cc1Swenshuai.xi
61*53ee8cc1Swenshuai.xi@script:python depends on report@
62*53ee8cc1Swenshuai.xip << r.p;
63*53ee8cc1Swenshuai.xit << r.T;
64*53ee8cc1Swenshuai.xi@@
65*53ee8cc1Swenshuai.xi
66*53ee8cc1Swenshuai.ximsg="WARNING: casting value returned by k[cmz]alloc to (%s *) is useless." % (t)
67*53ee8cc1Swenshuai.xicoccilib.report.print_report(p[0], msg)
68