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