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