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