1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyun/// 3*4882a593Smuzhiyun/// Use *_pool_zalloc rather than *_pool_alloc followed by memset with 0 4*4882a593Smuzhiyun/// 5*4882a593Smuzhiyun// Copyright: (C) 2015 Intel Corp. 6*4882a593Smuzhiyun// Options: --no-includes --include-headers 7*4882a593Smuzhiyun// 8*4882a593Smuzhiyun// Keywords: dma_pool_zalloc, pci_pool_zalloc 9*4882a593Smuzhiyun// 10*4882a593Smuzhiyun 11*4882a593Smuzhiyunvirtual context 12*4882a593Smuzhiyunvirtual patch 13*4882a593Smuzhiyunvirtual org 14*4882a593Smuzhiyunvirtual report 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun//---------------------------------------------------------- 17*4882a593Smuzhiyun// For context mode 18*4882a593Smuzhiyun//---------------------------------------------------------- 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun@depends on context@ 21*4882a593Smuzhiyunexpression x; 22*4882a593Smuzhiyunstatement S; 23*4882a593Smuzhiyun@@ 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun* x = \(dma_pool_alloc\|pci_pool_alloc\)(...); 26*4882a593Smuzhiyun if ((x==NULL) || ...) S 27*4882a593Smuzhiyun* memset(x,0, ...); 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun//---------------------------------------------------------- 30*4882a593Smuzhiyun// For patch mode 31*4882a593Smuzhiyun//---------------------------------------------------------- 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun@depends on patch@ 34*4882a593Smuzhiyunexpression x; 35*4882a593Smuzhiyunexpression a,b,c; 36*4882a593Smuzhiyunstatement S; 37*4882a593Smuzhiyun@@ 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun- x = dma_pool_alloc(a,b,c); 40*4882a593Smuzhiyun+ x = dma_pool_zalloc(a,b,c); 41*4882a593Smuzhiyun if ((x==NULL) || ...) S 42*4882a593Smuzhiyun- memset(x,0,...); 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun@depends on patch@ 45*4882a593Smuzhiyunexpression x; 46*4882a593Smuzhiyunexpression a,b,c; 47*4882a593Smuzhiyunstatement S; 48*4882a593Smuzhiyun@@ 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun- x = pci_pool_alloc(a,b,c); 51*4882a593Smuzhiyun+ x = pci_pool_zalloc(a,b,c); 52*4882a593Smuzhiyun if ((x==NULL) || ...) S 53*4882a593Smuzhiyun- memset(x,0,...); 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun//---------------------------------------------------------- 56*4882a593Smuzhiyun// For org and report mode 57*4882a593Smuzhiyun//---------------------------------------------------------- 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun@r depends on org || report@ 60*4882a593Smuzhiyunexpression x; 61*4882a593Smuzhiyunexpression a,b,c; 62*4882a593Smuzhiyunstatement S; 63*4882a593Smuzhiyunposition p; 64*4882a593Smuzhiyun@@ 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun x = @p\(dma_pool_alloc\|pci_pool_alloc\)(a,b,c); 67*4882a593Smuzhiyun if ((x==NULL) || ...) S 68*4882a593Smuzhiyun memset(x,0, ...); 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun@script:python depends on org@ 71*4882a593Smuzhiyunp << r.p; 72*4882a593Smuzhiyunx << r.x; 73*4882a593Smuzhiyun@@ 74*4882a593Smuzhiyun 75*4882a593Smuzhiyunmsg="%s" % (x) 76*4882a593Smuzhiyunmsg_safe=msg.replace("[","@(").replace("]",")") 77*4882a593Smuzhiyuncoccilib.org.print_todo(p[0], msg_safe) 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun@script:python depends on report@ 80*4882a593Smuzhiyunp << r.p; 81*4882a593Smuzhiyunx << r.x; 82*4882a593Smuzhiyun@@ 83*4882a593Smuzhiyun 84*4882a593Smuzhiyunmsg="WARNING: *_pool_zalloc should be used for %s, instead of *_pool_alloc/memset" % (x) 85*4882a593Smuzhiyuncoccilib.report.print_report(p[0], msg) 86