1*7f904d7eSThomas Gleixner// SPDX-License-Identifier: GPL-2.0-only
21fc524d7SSean O. Stalley///
31fc524d7SSean O. Stalley/// Use *_pool_zalloc rather than *_pool_alloc followed by memset with 0
41fc524d7SSean O. Stalley///
5*7f904d7eSThomas Gleixner// Copyright: (C) 2015 Intel Corp.
61fc524d7SSean O. Stalley// Options: --no-includes --include-headers
71fc524d7SSean O. Stalley//
81fc524d7SSean O. Stalley// Keywords: dma_pool_zalloc, pci_pool_zalloc
91fc524d7SSean O. Stalley//
101fc524d7SSean O. Stalley
111fc524d7SSean O. Stalleyvirtual context
121fc524d7SSean O. Stalleyvirtual patch
131fc524d7SSean O. Stalleyvirtual org
141fc524d7SSean O. Stalleyvirtual report
151fc524d7SSean O. Stalley
161fc524d7SSean O. Stalley//----------------------------------------------------------
171fc524d7SSean O. Stalley//  For context mode
181fc524d7SSean O. Stalley//----------------------------------------------------------
191fc524d7SSean O. Stalley
201fc524d7SSean O. Stalley@depends on context@
211fc524d7SSean O. Stalleyexpression x;
221fc524d7SSean O. Stalleystatement S;
231fc524d7SSean O. Stalley@@
241fc524d7SSean O. Stalley
251fc524d7SSean O. Stalley* x = \(dma_pool_alloc\|pci_pool_alloc\)(...);
261fc524d7SSean O. Stalley  if ((x==NULL) || ...) S
271fc524d7SSean O. Stalley* memset(x,0, ...);
281fc524d7SSean O. Stalley
291fc524d7SSean O. Stalley//----------------------------------------------------------
301fc524d7SSean O. Stalley//  For patch mode
311fc524d7SSean O. Stalley//----------------------------------------------------------
321fc524d7SSean O. Stalley
331fc524d7SSean O. Stalley@depends on patch@
341fc524d7SSean O. Stalleyexpression x;
351fc524d7SSean O. Stalleyexpression a,b,c;
361fc524d7SSean O. Stalleystatement S;
371fc524d7SSean O. Stalley@@
381fc524d7SSean O. Stalley
391fc524d7SSean O. Stalley- x = dma_pool_alloc(a,b,c);
401fc524d7SSean O. Stalley+ x = dma_pool_zalloc(a,b,c);
411fc524d7SSean O. Stalley  if ((x==NULL) || ...) S
421fc524d7SSean O. Stalley- memset(x,0,...);
431fc524d7SSean O. Stalley
441fc524d7SSean O. Stalley@depends on patch@
451fc524d7SSean O. Stalleyexpression x;
461fc524d7SSean O. Stalleyexpression a,b,c;
471fc524d7SSean O. Stalleystatement S;
481fc524d7SSean O. Stalley@@
491fc524d7SSean O. Stalley
501fc524d7SSean O. Stalley- x = pci_pool_alloc(a,b,c);
511fc524d7SSean O. Stalley+ x = pci_pool_zalloc(a,b,c);
521fc524d7SSean O. Stalley  if ((x==NULL) || ...) S
531fc524d7SSean O. Stalley- memset(x,0,...);
541fc524d7SSean O. Stalley
551fc524d7SSean O. Stalley//----------------------------------------------------------
561fc524d7SSean O. Stalley//  For org and report mode
571fc524d7SSean O. Stalley//----------------------------------------------------------
581fc524d7SSean O. Stalley
591fc524d7SSean O. Stalley@r depends on org || report@
601fc524d7SSean O. Stalleyexpression x;
611fc524d7SSean O. Stalleyexpression a,b,c;
621fc524d7SSean O. Stalleystatement S;
631fc524d7SSean O. Stalleyposition p;
641fc524d7SSean O. Stalley@@
651fc524d7SSean O. Stalley
661fc524d7SSean O. Stalley x = @p\(dma_pool_alloc\|pci_pool_alloc\)(a,b,c);
671fc524d7SSean O. Stalley if ((x==NULL) || ...) S
681fc524d7SSean O. Stalley memset(x,0, ...);
691fc524d7SSean O. Stalley
701fc524d7SSean O. Stalley@script:python depends on org@
711fc524d7SSean O. Stalleyp << r.p;
721fc524d7SSean O. Stalleyx << r.x;
731fc524d7SSean O. Stalley@@
741fc524d7SSean O. Stalley
751fc524d7SSean O. Stalleymsg="%s" % (x)
761fc524d7SSean O. Stalleymsg_safe=msg.replace("[","@(").replace("]",")")
771fc524d7SSean O. Stalleycoccilib.org.print_todo(p[0], msg_safe)
781fc524d7SSean O. Stalley
791fc524d7SSean O. Stalley@script:python depends on report@
801fc524d7SSean O. Stalleyp << r.p;
811fc524d7SSean O. Stalleyx << r.x;
821fc524d7SSean O. Stalley@@
831fc524d7SSean O. Stalley
841fc524d7SSean O. Stalleymsg="WARNING: *_pool_zalloc should be used for %s, instead of *_pool_alloc/memset" % (x)
851fc524d7SSean O. Stalleycoccilib.report.print_report(p[0], msg)
86