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