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, pci_pool_zalloc 9 // 10 11 virtual context 12 virtual patch 13 virtual org 14 virtual report 15 16 //---------------------------------------------------------- 17 // For context mode 18 //---------------------------------------------------------- 19 20 @depends on context@ 21 expression x; 22 statement S; 23 @@ 24 25 * x = \(dma_pool_alloc\|pci_pool_alloc\)(...); 26 if ((x==NULL) || ...) S 27 * memset(x,0, ...); 28 29 //---------------------------------------------------------- 30 // For patch mode 31 //---------------------------------------------------------- 32 33 @depends on patch@ 34 expression x; 35 expression a,b,c; 36 statement 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 @depends on patch@ 45 expression x; 46 expression a,b,c; 47 statement S; 48 @@ 49 50 - x = pci_pool_alloc(a,b,c); 51 + x = pci_pool_zalloc(a,b,c); 52 if ((x==NULL) || ...) S 53 - memset(x,0,...); 54 55 //---------------------------------------------------------- 56 // For org and report mode 57 //---------------------------------------------------------- 58 59 @r depends on org || report@ 60 expression x; 61 expression a,b,c; 62 statement S; 63 position p; 64 @@ 65 66 x = @p\(dma_pool_alloc\|pci_pool_alloc\)(a,b,c); 67 if ((x==NULL) || ...) S 68 memset(x,0, ...); 69 70 @script:python depends on org@ 71 p << r.p; 72 x << r.x; 73 @@ 74 75 msg="%s" % (x) 76 msg_safe=msg.replace("[","@(").replace("]",")") 77 coccilib.org.print_todo(p[0], msg_safe) 78 79 @script:python depends on report@ 80 p << r.p; 81 x << r.x; 82 @@ 83 84 msg="WARNING: *_pool_zalloc should be used for %s, instead of *_pool_alloc/memset" % (x) 85 coccilib.report.print_report(p[0], msg)
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.