162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci/// 362306a36Sopenharmony_ci/// Use *_pool_zalloc rather than *_pool_alloc followed by memset with 0 462306a36Sopenharmony_ci/// 562306a36Sopenharmony_ci// Copyright: (C) 2015 Intel Corp. 662306a36Sopenharmony_ci// Options: --no-includes --include-headers 762306a36Sopenharmony_ci// 862306a36Sopenharmony_ci// Keywords: dma_pool_zalloc, pci_pool_zalloc 962306a36Sopenharmony_ci// 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_civirtual context 1262306a36Sopenharmony_civirtual patch 1362306a36Sopenharmony_civirtual org 1462306a36Sopenharmony_civirtual report 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci//---------------------------------------------------------- 1762306a36Sopenharmony_ci// For context mode 1862306a36Sopenharmony_ci//---------------------------------------------------------- 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci@depends on context@ 2162306a36Sopenharmony_ciexpression x; 2262306a36Sopenharmony_cistatement S; 2362306a36Sopenharmony_ci@@ 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci* x = \(dma_pool_alloc\|pci_pool_alloc\)(...); 2662306a36Sopenharmony_ci if ((x==NULL) || ...) S 2762306a36Sopenharmony_ci* memset(x,0, ...); 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci//---------------------------------------------------------- 3062306a36Sopenharmony_ci// For patch mode 3162306a36Sopenharmony_ci//---------------------------------------------------------- 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci@depends on patch@ 3462306a36Sopenharmony_ciexpression x; 3562306a36Sopenharmony_ciexpression a,b,c; 3662306a36Sopenharmony_cistatement S; 3762306a36Sopenharmony_ci@@ 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci- x = dma_pool_alloc(a,b,c); 4062306a36Sopenharmony_ci+ x = dma_pool_zalloc(a,b,c); 4162306a36Sopenharmony_ci if ((x==NULL) || ...) S 4262306a36Sopenharmony_ci- memset(x,0,...); 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci@depends on patch@ 4562306a36Sopenharmony_ciexpression x; 4662306a36Sopenharmony_ciexpression a,b,c; 4762306a36Sopenharmony_cistatement S; 4862306a36Sopenharmony_ci@@ 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci- x = pci_pool_alloc(a,b,c); 5162306a36Sopenharmony_ci+ x = pci_pool_zalloc(a,b,c); 5262306a36Sopenharmony_ci if ((x==NULL) || ...) S 5362306a36Sopenharmony_ci- memset(x,0,...); 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci//---------------------------------------------------------- 5662306a36Sopenharmony_ci// For org and report mode 5762306a36Sopenharmony_ci//---------------------------------------------------------- 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_ci@r depends on org || report@ 6062306a36Sopenharmony_ciexpression x; 6162306a36Sopenharmony_ciexpression a,b,c; 6262306a36Sopenharmony_cistatement S; 6362306a36Sopenharmony_ciposition p; 6462306a36Sopenharmony_ci@@ 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci x = @p\(dma_pool_alloc\|pci_pool_alloc\)(a,b,c); 6762306a36Sopenharmony_ci if ((x==NULL) || ...) S 6862306a36Sopenharmony_ci memset(x,0, ...); 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci@script:python depends on org@ 7162306a36Sopenharmony_cip << r.p; 7262306a36Sopenharmony_cix << r.x; 7362306a36Sopenharmony_ci@@ 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_cimsg="%s" % (x) 7662306a36Sopenharmony_cimsg_safe=msg.replace("[","@(").replace("]",")") 7762306a36Sopenharmony_cicoccilib.org.print_todo(p[0], msg_safe) 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci@script:python depends on report@ 8062306a36Sopenharmony_cip << r.p; 8162306a36Sopenharmony_cix << r.x; 8262306a36Sopenharmony_ci@@ 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_cimsg="WARNING: *_pool_zalloc should be used for %s, instead of *_pool_alloc/memset" % (x) 8562306a36Sopenharmony_cicoccilib.report.print_report(p[0], msg) 86