68 lines
		
	
	
	
		
			1.4 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			68 lines
		
	
	
	
		
			1.4 KiB
			
		
	
	
	
		
			Text
		
	
	
	
	
	
| 
								 | 
							
								///
							 | 
						||
| 
								 | 
							
								/// Casting (void *) value returned by kmalloc is useless
							 | 
						||
| 
								 | 
							
								/// as mentioned in Documentation/CodingStyle, Chap 14.
							 | 
						||
| 
								 | 
							
								///
							 | 
						||
| 
								 | 
							
								// Confidence: High
							 | 
						||
| 
								 | 
							
								// Copyright: 2009,2010 Nicolas Palix, DIKU.  GPLv2.
							 | 
						||
| 
								 | 
							
								// URL: http://coccinelle.lip6.fr/
							 | 
						||
| 
								 | 
							
								// Options: -no_includes -include_headers
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// Keywords: kmalloc, kzalloc, kcalloc
							 | 
						||
| 
								 | 
							
								// Version min: < 2.6.12 kmalloc
							 | 
						||
| 
								 | 
							
								// Version min: < 2.6.12 kcalloc
							 | 
						||
| 
								 | 
							
								// Version min:   2.6.14 kzalloc
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								virtual context
							 | 
						||
| 
								 | 
							
								virtual patch
							 | 
						||
| 
								 | 
							
								virtual org
							 | 
						||
| 
								 | 
							
								virtual report
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//----------------------------------------------------------
							 | 
						||
| 
								 | 
							
								//  For context mode
							 | 
						||
| 
								 | 
							
								//----------------------------------------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@depends on context@
							 | 
						||
| 
								 | 
							
								type T;
							 | 
						||
| 
								 | 
							
								@@
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								* (T *)
							 | 
						||
| 
								 | 
							
								  \(kmalloc\|kzalloc\|kcalloc\)(...)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//----------------------------------------------------------
							 | 
						||
| 
								 | 
							
								//  For patch mode
							 | 
						||
| 
								 | 
							
								//----------------------------------------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@depends on patch@
							 | 
						||
| 
								 | 
							
								type T;
							 | 
						||
| 
								 | 
							
								@@
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (T *)
							 | 
						||
| 
								 | 
							
								  \(kmalloc\|kzalloc\|kcalloc\)(...)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//----------------------------------------------------------
							 | 
						||
| 
								 | 
							
								//  For org and report mode
							 | 
						||
| 
								 | 
							
								//----------------------------------------------------------
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@r depends on org || report@
							 | 
						||
| 
								 | 
							
								type T;
							 | 
						||
| 
								 | 
							
								position p;
							 | 
						||
| 
								 | 
							
								@@
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								 (T@p *)\(kmalloc\|kzalloc\|kcalloc\)(...)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@script:python depends on org@
							 | 
						||
| 
								 | 
							
								p << r.p;
							 | 
						||
| 
								 | 
							
								t << r.T;
							 | 
						||
| 
								 | 
							
								@@
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								coccilib.org.print_safe_todo(p[0], t)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@script:python depends on report@
							 | 
						||
| 
								 | 
							
								p << r.p;
							 | 
						||
| 
								 | 
							
								t << r.T;
							 | 
						||
| 
								 | 
							
								@@
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								msg="WARNING: casting value returned by k[cmz]alloc to (%s *) is useless." % (t)
							 | 
						||
| 
								 | 
							
								coccilib.report.print_report(p[0], msg)
							 |