add [pci|dma]_pool_zalloc coccinelle check. replaces instances of [pci|dma]_pool_alloc() followed by memset(0) with [pci|dma]_pool_zalloc(). Signed-off-by: Sean O. Stalley <sean.stalley@intel.com> Acked-by: Julia Lawall <julia.lawall@lip6.fr> Cc: Vinod Koul <vinod.koul@intel.com> Cc: Bjorn Helgaas <bhelgaas@google.com> Cc: Gilles Muller <Gilles.Muller@lip6.fr> Cc: Nicolas Palix <nicolas.palix@imag.fr> Cc: Michal Marek <mmarek@suse.cz> Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Cc: Jonathan Corbet <corbet@lwn.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
		
			
				
	
	
		
			85 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ///
 | |
| /// Use *_pool_zalloc rather than *_pool_alloc followed by memset with 0
 | |
| ///
 | |
| // Copyright: (C) 2015 Intel Corp.  GPLv2.
 | |
| // Options: --no-includes --include-headers
 | |
| //
 | |
| // Keywords: dma_pool_zalloc, pci_pool_zalloc
 | |
| //
 | |
| 
 | |
| virtual context
 | |
| virtual patch
 | |
| virtual org
 | |
| virtual report
 | |
| 
 | |
| //----------------------------------------------------------
 | |
| //  For context mode
 | |
| //----------------------------------------------------------
 | |
| 
 | |
| @depends on context@
 | |
| expression x;
 | |
| statement S;
 | |
| @@
 | |
| 
 | |
| * x = \(dma_pool_alloc\|pci_pool_alloc\)(...);
 | |
|   if ((x==NULL) || ...) S
 | |
| * memset(x,0, ...);
 | |
| 
 | |
| //----------------------------------------------------------
 | |
| //  For patch mode
 | |
| //----------------------------------------------------------
 | |
| 
 | |
| @depends on patch@
 | |
| expression x;
 | |
| expression a,b,c;
 | |
| statement S;
 | |
| @@
 | |
| 
 | |
| - x = dma_pool_alloc(a,b,c);
 | |
| + x = dma_pool_zalloc(a,b,c);
 | |
|   if ((x==NULL) || ...) S
 | |
| - memset(x,0,...);
 | |
| 
 | |
| @depends on patch@
 | |
| expression x;
 | |
| expression a,b,c;
 | |
| statement S;
 | |
| @@
 | |
| 
 | |
| - x = pci_pool_alloc(a,b,c);
 | |
| + x = pci_pool_zalloc(a,b,c);
 | |
|   if ((x==NULL) || ...) S
 | |
| - memset(x,0,...);
 | |
| 
 | |
| //----------------------------------------------------------
 | |
| //  For org and report mode
 | |
| //----------------------------------------------------------
 | |
| 
 | |
| @r depends on org || report@
 | |
| expression x;
 | |
| expression a,b,c;
 | |
| statement S;
 | |
| position p;
 | |
| @@
 | |
| 
 | |
|  x = @p\(dma_pool_alloc\|pci_pool_alloc\)(a,b,c);
 | |
|  if ((x==NULL) || ...) S
 | |
|  memset(x,0, ...);
 | |
| 
 | |
| @script:python depends on org@
 | |
| p << r.p;
 | |
| x << r.x;
 | |
| @@
 | |
| 
 | |
| msg="%s" % (x)
 | |
| msg_safe=msg.replace("[","@(").replace("]",")")
 | |
| coccilib.org.print_todo(p[0], msg_safe)
 | |
| 
 | |
| @script:python depends on report@
 | |
| p << r.p;
 | |
| x << r.x;
 | |
| @@
 | |
| 
 | |
| msg="WARNING: *_pool_zalloc should be used for %s, instead of *_pool_alloc/memset" % (x)
 | |
| coccilib.report.print_report(p[0], msg)
 |