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