18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci/// 38c2ecf20Sopenharmony_ci/// Use zeroing allocator rather than allocator followed by memset with 0 48c2ecf20Sopenharmony_ci/// 58c2ecf20Sopenharmony_ci/// This considers some simple cases that are common and easy to validate 68c2ecf20Sopenharmony_ci/// Note in particular that there are no ...s in the rule, so all of the 78c2ecf20Sopenharmony_ci/// matched code has to be contiguous 88c2ecf20Sopenharmony_ci/// 98c2ecf20Sopenharmony_ci// Confidence: High 108c2ecf20Sopenharmony_ci// Copyright: (C) 2009-2010 Julia Lawall, Nicolas Palix, DIKU. 118c2ecf20Sopenharmony_ci// Copyright: (C) 2009-2010 Gilles Muller, INRIA/LiP6. 128c2ecf20Sopenharmony_ci// Copyright: (C) 2017 Himanshu Jha 138c2ecf20Sopenharmony_ci// URL: http://coccinelle.lip6.fr/rules/kzalloc.html 148c2ecf20Sopenharmony_ci// Options: --no-includes --include-headers 158c2ecf20Sopenharmony_ci// 168c2ecf20Sopenharmony_ci// Keywords: kmalloc, kzalloc 178c2ecf20Sopenharmony_ci// Version min: < 2.6.12 kmalloc 188c2ecf20Sopenharmony_ci// Version min: 2.6.14 kzalloc 198c2ecf20Sopenharmony_ci// 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_civirtual context 228c2ecf20Sopenharmony_civirtual patch 238c2ecf20Sopenharmony_civirtual org 248c2ecf20Sopenharmony_civirtual report 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci//---------------------------------------------------------- 278c2ecf20Sopenharmony_ci// For context mode 288c2ecf20Sopenharmony_ci//---------------------------------------------------------- 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci@depends on context@ 318c2ecf20Sopenharmony_citype T, T2; 328c2ecf20Sopenharmony_ciexpression x; 338c2ecf20Sopenharmony_ciexpression E1; 348c2ecf20Sopenharmony_cistatement S; 358c2ecf20Sopenharmony_ci@@ 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci* x = (T)\(kmalloc(E1, ...)\|vmalloc(E1)\|dma_alloc_coherent(...,E1,...)\| 388c2ecf20Sopenharmony_ci kmalloc_node(E1, ...)\|kmem_cache_alloc(...)\|kmem_alloc(E1, ...)\| 398c2ecf20Sopenharmony_ci devm_kmalloc(...,E1,...)\|kvmalloc(E1, ...)\|kvmalloc_node(E1,...)\); 408c2ecf20Sopenharmony_ci if ((x==NULL) || ...) S 418c2ecf20Sopenharmony_ci* memset((T2)x,0,E1); 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci//---------------------------------------------------------- 448c2ecf20Sopenharmony_ci// For patch mode 458c2ecf20Sopenharmony_ci//---------------------------------------------------------- 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci@depends on patch@ 488c2ecf20Sopenharmony_citype T, T2; 498c2ecf20Sopenharmony_ciexpression x; 508c2ecf20Sopenharmony_ciexpression E1,E2,E3,E4; 518c2ecf20Sopenharmony_cistatement S; 528c2ecf20Sopenharmony_ci@@ 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci( 558c2ecf20Sopenharmony_ci- x = kmalloc(E1,E2); 568c2ecf20Sopenharmony_ci+ x = kzalloc(E1,E2); 578c2ecf20Sopenharmony_ci| 588c2ecf20Sopenharmony_ci- x = (T *)kmalloc(E1,E2); 598c2ecf20Sopenharmony_ci+ x = kzalloc(E1,E2); 608c2ecf20Sopenharmony_ci| 618c2ecf20Sopenharmony_ci- x = (T)kmalloc(E1,E2); 628c2ecf20Sopenharmony_ci+ x = (T)kzalloc(E1,E2); 638c2ecf20Sopenharmony_ci| 648c2ecf20Sopenharmony_ci- x = vmalloc(E1); 658c2ecf20Sopenharmony_ci+ x = vzalloc(E1); 668c2ecf20Sopenharmony_ci| 678c2ecf20Sopenharmony_ci- x = (T *)vmalloc(E1); 688c2ecf20Sopenharmony_ci+ x = vzalloc(E1); 698c2ecf20Sopenharmony_ci| 708c2ecf20Sopenharmony_ci- x = (T)vmalloc(E1); 718c2ecf20Sopenharmony_ci+ x = (T)vzalloc(E1); 728c2ecf20Sopenharmony_ci| 738c2ecf20Sopenharmony_ci- x = kmalloc_node(E1,E2,E3); 748c2ecf20Sopenharmony_ci+ x = kzalloc_node(E1,E2,E3); 758c2ecf20Sopenharmony_ci| 768c2ecf20Sopenharmony_ci- x = (T *)kmalloc_node(E1,E2,E3); 778c2ecf20Sopenharmony_ci+ x = kzalloc_node(E1,E2,E3); 788c2ecf20Sopenharmony_ci| 798c2ecf20Sopenharmony_ci- x = (T)kmalloc_node(E1,E2,E3); 808c2ecf20Sopenharmony_ci+ x = (T)kzalloc_node(E1,E2,E3); 818c2ecf20Sopenharmony_ci| 828c2ecf20Sopenharmony_ci- x = kmem_cache_alloc(E3,E4); 838c2ecf20Sopenharmony_ci+ x = kmem_cache_zalloc(E3,E4); 848c2ecf20Sopenharmony_ci| 858c2ecf20Sopenharmony_ci- x = (T *)kmem_cache_alloc(E3,E4); 868c2ecf20Sopenharmony_ci+ x = kmem_cache_zalloc(E3,E4); 878c2ecf20Sopenharmony_ci| 888c2ecf20Sopenharmony_ci- x = (T)kmem_cache_alloc(E3,E4); 898c2ecf20Sopenharmony_ci+ x = (T)kmem_cache_zalloc(E3,E4); 908c2ecf20Sopenharmony_ci| 918c2ecf20Sopenharmony_ci- x = kmem_alloc(E1,E2); 928c2ecf20Sopenharmony_ci+ x = kmem_zalloc(E1,E2); 938c2ecf20Sopenharmony_ci| 948c2ecf20Sopenharmony_ci- x = (T *)kmem_alloc(E1,E2); 958c2ecf20Sopenharmony_ci+ x = kmem_zalloc(E1,E2); 968c2ecf20Sopenharmony_ci| 978c2ecf20Sopenharmony_ci- x = (T)kmem_alloc(E1,E2); 988c2ecf20Sopenharmony_ci+ x = (T)kmem_zalloc(E1,E2); 998c2ecf20Sopenharmony_ci| 1008c2ecf20Sopenharmony_ci- x = devm_kmalloc(E2,E1,E3); 1018c2ecf20Sopenharmony_ci+ x = devm_kzalloc(E2,E1,E3); 1028c2ecf20Sopenharmony_ci| 1038c2ecf20Sopenharmony_ci- x = (T *)devm_kmalloc(E2,E1,E3); 1048c2ecf20Sopenharmony_ci+ x = devm_kzalloc(E2,E1,E3); 1058c2ecf20Sopenharmony_ci| 1068c2ecf20Sopenharmony_ci- x = (T)devm_kmalloc(E2,E1,E3); 1078c2ecf20Sopenharmony_ci+ x = (T)devm_kzalloc(E2,E1,E3); 1088c2ecf20Sopenharmony_ci| 1098c2ecf20Sopenharmony_ci- x = kvmalloc(E1,E2); 1108c2ecf20Sopenharmony_ci+ x = kvzalloc(E1,E2); 1118c2ecf20Sopenharmony_ci| 1128c2ecf20Sopenharmony_ci- x = (T *)kvmalloc(E1,E2); 1138c2ecf20Sopenharmony_ci+ x = kvzalloc(E1,E2); 1148c2ecf20Sopenharmony_ci| 1158c2ecf20Sopenharmony_ci- x = (T)kvmalloc(E1,E2); 1168c2ecf20Sopenharmony_ci+ x = (T)kvzalloc(E1,E2); 1178c2ecf20Sopenharmony_ci| 1188c2ecf20Sopenharmony_ci- x = kvmalloc_node(E1,E2,E3); 1198c2ecf20Sopenharmony_ci+ x = kvzalloc_node(E1,E2,E3); 1208c2ecf20Sopenharmony_ci| 1218c2ecf20Sopenharmony_ci- x = (T *)kvmalloc_node(E1,E2,E3); 1228c2ecf20Sopenharmony_ci+ x = kvzalloc_node(E1,E2,E3); 1238c2ecf20Sopenharmony_ci| 1248c2ecf20Sopenharmony_ci- x = (T)kvmalloc_node(E1,E2,E3); 1258c2ecf20Sopenharmony_ci+ x = (T)kvzalloc_node(E1,E2,E3); 1268c2ecf20Sopenharmony_ci) 1278c2ecf20Sopenharmony_ci if ((x==NULL) || ...) S 1288c2ecf20Sopenharmony_ci- memset((T2)x,0,E1); 1298c2ecf20Sopenharmony_ci 1308c2ecf20Sopenharmony_ci@depends on patch@ 1318c2ecf20Sopenharmony_citype T, T2; 1328c2ecf20Sopenharmony_ciexpression x; 1338c2ecf20Sopenharmony_ciexpression E1,E2,E3,E4; 1348c2ecf20Sopenharmony_cistatement S; 1358c2ecf20Sopenharmony_ci@@ 1368c2ecf20Sopenharmony_ci x = (T)dma_alloc_coherent(E1, E2, E3, E4); 1378c2ecf20Sopenharmony_ci if ((x==NULL) || ...) S 1388c2ecf20Sopenharmony_ci- memset((T2)x, 0, E2); 1398c2ecf20Sopenharmony_ci 1408c2ecf20Sopenharmony_ci//---------------------------------------------------------- 1418c2ecf20Sopenharmony_ci// For org mode 1428c2ecf20Sopenharmony_ci//---------------------------------------------------------- 1438c2ecf20Sopenharmony_ci 1448c2ecf20Sopenharmony_ci@r depends on org || report@ 1458c2ecf20Sopenharmony_citype T, T2; 1468c2ecf20Sopenharmony_ciexpression x; 1478c2ecf20Sopenharmony_ciexpression E1,E2; 1488c2ecf20Sopenharmony_cistatement S; 1498c2ecf20Sopenharmony_ciposition p; 1508c2ecf20Sopenharmony_ci@@ 1518c2ecf20Sopenharmony_ci 1528c2ecf20Sopenharmony_ci x = (T)kmalloc@p(E1,E2); 1538c2ecf20Sopenharmony_ci if ((x==NULL) || ...) S 1548c2ecf20Sopenharmony_ci memset((T2)x,0,E1); 1558c2ecf20Sopenharmony_ci 1568c2ecf20Sopenharmony_ci@script:python depends on org@ 1578c2ecf20Sopenharmony_cip << r.p; 1588c2ecf20Sopenharmony_cix << r.x; 1598c2ecf20Sopenharmony_ci@@ 1608c2ecf20Sopenharmony_ci 1618c2ecf20Sopenharmony_cimsg="%s" % (x) 1628c2ecf20Sopenharmony_cimsg_safe=msg.replace("[","@(").replace("]",")") 1638c2ecf20Sopenharmony_cicoccilib.org.print_todo(p[0], msg_safe) 1648c2ecf20Sopenharmony_ci 1658c2ecf20Sopenharmony_ci@script:python depends on report@ 1668c2ecf20Sopenharmony_cip << r.p; 1678c2ecf20Sopenharmony_cix << r.x; 1688c2ecf20Sopenharmony_ci@@ 1698c2ecf20Sopenharmony_ci 1708c2ecf20Sopenharmony_cimsg="WARNING: kzalloc should be used for %s, instead of kmalloc/memset" % (x) 1718c2ecf20Sopenharmony_cicoccilib.report.print_report(p[0], msg) 1728c2ecf20Sopenharmony_ci 1738c2ecf20Sopenharmony_ci//----------------------------------------------------------------- 1748c2ecf20Sopenharmony_ci@r1 depends on org || report@ 1758c2ecf20Sopenharmony_citype T, T2; 1768c2ecf20Sopenharmony_ciexpression x; 1778c2ecf20Sopenharmony_ciexpression E1; 1788c2ecf20Sopenharmony_cistatement S; 1798c2ecf20Sopenharmony_ciposition p; 1808c2ecf20Sopenharmony_ci@@ 1818c2ecf20Sopenharmony_ci 1828c2ecf20Sopenharmony_ci x = (T)vmalloc@p(E1); 1838c2ecf20Sopenharmony_ci if ((x==NULL) || ...) S 1848c2ecf20Sopenharmony_ci memset((T2)x,0,E1); 1858c2ecf20Sopenharmony_ci 1868c2ecf20Sopenharmony_ci@script:python depends on org@ 1878c2ecf20Sopenharmony_cip << r1.p; 1888c2ecf20Sopenharmony_cix << r1.x; 1898c2ecf20Sopenharmony_ci@@ 1908c2ecf20Sopenharmony_ci 1918c2ecf20Sopenharmony_cimsg="%s" % (x) 1928c2ecf20Sopenharmony_cimsg_safe=msg.replace("[","@(").replace("]",")") 1938c2ecf20Sopenharmony_cicoccilib.org.print_todo(p[0], msg_safe) 1948c2ecf20Sopenharmony_ci 1958c2ecf20Sopenharmony_ci@script:python depends on report@ 1968c2ecf20Sopenharmony_cip << r1.p; 1978c2ecf20Sopenharmony_cix << r1.x; 1988c2ecf20Sopenharmony_ci@@ 1998c2ecf20Sopenharmony_ci 2008c2ecf20Sopenharmony_cimsg="WARNING: vzalloc should be used for %s, instead of vmalloc/memset" % (x) 2018c2ecf20Sopenharmony_cicoccilib.report.print_report(p[0], msg) 2028c2ecf20Sopenharmony_ci 2038c2ecf20Sopenharmony_ci//----------------------------------------------------------------- 2048c2ecf20Sopenharmony_ci@r2 depends on org || report@ 2058c2ecf20Sopenharmony_citype T, T2; 2068c2ecf20Sopenharmony_ciexpression x; 2078c2ecf20Sopenharmony_ciexpression E1,E2,E3,E4; 2088c2ecf20Sopenharmony_cistatement S; 2098c2ecf20Sopenharmony_ciposition p; 2108c2ecf20Sopenharmony_ci@@ 2118c2ecf20Sopenharmony_ci 2128c2ecf20Sopenharmony_ci x = (T)dma_alloc_coherent@p(E1,E2,E3,E4); 2138c2ecf20Sopenharmony_ci if ((x==NULL) || ...) S 2148c2ecf20Sopenharmony_ci memset((T2)x,0,E2); 2158c2ecf20Sopenharmony_ci 2168c2ecf20Sopenharmony_ci@script:python depends on org@ 2178c2ecf20Sopenharmony_cip << r2.p; 2188c2ecf20Sopenharmony_cix << r2.x; 2198c2ecf20Sopenharmony_ci@@ 2208c2ecf20Sopenharmony_ci 2218c2ecf20Sopenharmony_cimsg="%s" % (x) 2228c2ecf20Sopenharmony_cimsg_safe=msg.replace("[","@(").replace("]",")") 2238c2ecf20Sopenharmony_cicoccilib.org.print_todo(p[0], msg_safe) 2248c2ecf20Sopenharmony_ci 2258c2ecf20Sopenharmony_ci@script:python depends on report@ 2268c2ecf20Sopenharmony_cip << r2.p; 2278c2ecf20Sopenharmony_cix << r2.x; 2288c2ecf20Sopenharmony_ci@@ 2298c2ecf20Sopenharmony_ci 2308c2ecf20Sopenharmony_cimsg="WARNING: dma_alloc_coherent used in %s already zeroes out memory, so memset is not needed" % (x) 2318c2ecf20Sopenharmony_cicoccilib.report.print_report(p[0], msg) 2328c2ecf20Sopenharmony_ci 2338c2ecf20Sopenharmony_ci//----------------------------------------------------------------- 2348c2ecf20Sopenharmony_ci@r3 depends on org || report@ 2358c2ecf20Sopenharmony_citype T, T2; 2368c2ecf20Sopenharmony_ciexpression x; 2378c2ecf20Sopenharmony_ciexpression E1,E2,E3; 2388c2ecf20Sopenharmony_cistatement S; 2398c2ecf20Sopenharmony_ciposition p; 2408c2ecf20Sopenharmony_ci@@ 2418c2ecf20Sopenharmony_ci 2428c2ecf20Sopenharmony_ci x = (T)kmalloc_node@p(E1,E2,E3); 2438c2ecf20Sopenharmony_ci if ((x==NULL) || ...) S 2448c2ecf20Sopenharmony_ci memset((T2)x,0,E1); 2458c2ecf20Sopenharmony_ci 2468c2ecf20Sopenharmony_ci@script:python depends on org@ 2478c2ecf20Sopenharmony_cip << r3.p; 2488c2ecf20Sopenharmony_cix << r3.x; 2498c2ecf20Sopenharmony_ci@@ 2508c2ecf20Sopenharmony_ci 2518c2ecf20Sopenharmony_cimsg="%s" % (x) 2528c2ecf20Sopenharmony_cimsg_safe=msg.replace("[","@(").replace("]",")") 2538c2ecf20Sopenharmony_cicoccilib.org.print_todo(p[0], msg_safe) 2548c2ecf20Sopenharmony_ci 2558c2ecf20Sopenharmony_ci@script:python depends on report@ 2568c2ecf20Sopenharmony_cip << r3.p; 2578c2ecf20Sopenharmony_cix << r3.x; 2588c2ecf20Sopenharmony_ci@@ 2598c2ecf20Sopenharmony_ci 2608c2ecf20Sopenharmony_cimsg="WARNING: kzalloc_node should be used for %s, instead of kmalloc_node/memset" % (x) 2618c2ecf20Sopenharmony_cicoccilib.report.print_report(p[0], msg) 2628c2ecf20Sopenharmony_ci 2638c2ecf20Sopenharmony_ci//----------------------------------------------------------------- 2648c2ecf20Sopenharmony_ci@r4 depends on org || report@ 2658c2ecf20Sopenharmony_citype T, T2; 2668c2ecf20Sopenharmony_ciexpression x; 2678c2ecf20Sopenharmony_ciexpression E1,E2,E3; 2688c2ecf20Sopenharmony_cistatement S; 2698c2ecf20Sopenharmony_ciposition p; 2708c2ecf20Sopenharmony_ci@@ 2718c2ecf20Sopenharmony_ci 2728c2ecf20Sopenharmony_ci x = (T)kmem_cache_alloc@p(E2,E3); 2738c2ecf20Sopenharmony_ci if ((x==NULL) || ...) S 2748c2ecf20Sopenharmony_ci memset((T2)x,0,E1); 2758c2ecf20Sopenharmony_ci 2768c2ecf20Sopenharmony_ci@script:python depends on org@ 2778c2ecf20Sopenharmony_cip << r4.p; 2788c2ecf20Sopenharmony_cix << r4.x; 2798c2ecf20Sopenharmony_ci@@ 2808c2ecf20Sopenharmony_ci 2818c2ecf20Sopenharmony_cimsg="%s" % (x) 2828c2ecf20Sopenharmony_cimsg_safe=msg.replace("[","@(").replace("]",")") 2838c2ecf20Sopenharmony_cicoccilib.org.print_todo(p[0], msg_safe) 2848c2ecf20Sopenharmony_ci 2858c2ecf20Sopenharmony_ci@script:python depends on report@ 2868c2ecf20Sopenharmony_cip << r4.p; 2878c2ecf20Sopenharmony_cix << r4.x; 2888c2ecf20Sopenharmony_ci@@ 2898c2ecf20Sopenharmony_ci 2908c2ecf20Sopenharmony_cimsg="WARNING: kmem_cache_zalloc should be used for %s, instead of kmem_cache_alloc/memset" % (x) 2918c2ecf20Sopenharmony_cicoccilib.report.print_report(p[0], msg) 2928c2ecf20Sopenharmony_ci 2938c2ecf20Sopenharmony_ci//----------------------------------------------------------------- 2948c2ecf20Sopenharmony_ci@r5 depends on org || report@ 2958c2ecf20Sopenharmony_citype T, T2; 2968c2ecf20Sopenharmony_ciexpression x; 2978c2ecf20Sopenharmony_ciexpression E1,E2; 2988c2ecf20Sopenharmony_cistatement S; 2998c2ecf20Sopenharmony_ciposition p; 3008c2ecf20Sopenharmony_ci@@ 3018c2ecf20Sopenharmony_ci 3028c2ecf20Sopenharmony_ci x = (T)kmem_alloc@p(E1,E2); 3038c2ecf20Sopenharmony_ci if ((x==NULL) || ...) S 3048c2ecf20Sopenharmony_ci memset((T2)x,0,E1); 3058c2ecf20Sopenharmony_ci 3068c2ecf20Sopenharmony_ci@script:python depends on org@ 3078c2ecf20Sopenharmony_cip << r5.p; 3088c2ecf20Sopenharmony_cix << r5.x; 3098c2ecf20Sopenharmony_ci@@ 3108c2ecf20Sopenharmony_ci 3118c2ecf20Sopenharmony_cimsg="%s" % (x) 3128c2ecf20Sopenharmony_cimsg_safe=msg.replace("[","@(").replace("]",")") 3138c2ecf20Sopenharmony_cicoccilib.org.print_todo(p[0], msg_safe) 3148c2ecf20Sopenharmony_ci 3158c2ecf20Sopenharmony_ci@script:python depends on report@ 3168c2ecf20Sopenharmony_cip << r5.p; 3178c2ecf20Sopenharmony_cix << r5.x; 3188c2ecf20Sopenharmony_ci@@ 3198c2ecf20Sopenharmony_ci 3208c2ecf20Sopenharmony_cimsg="WARNING: kmem_zalloc should be used for %s, instead of kmem_alloc/memset" % (x) 3218c2ecf20Sopenharmony_cicoccilib.report.print_report(p[0], msg) 3228c2ecf20Sopenharmony_ci 3238c2ecf20Sopenharmony_ci//----------------------------------------------------------------- 3248c2ecf20Sopenharmony_ci@r6 depends on org || report@ 3258c2ecf20Sopenharmony_citype T, T2; 3268c2ecf20Sopenharmony_ciexpression x; 3278c2ecf20Sopenharmony_ciexpression E1,E2,E3; 3288c2ecf20Sopenharmony_cistatement S; 3298c2ecf20Sopenharmony_ciposition p; 3308c2ecf20Sopenharmony_ci@@ 3318c2ecf20Sopenharmony_ci 3328c2ecf20Sopenharmony_ci x = (T)devm_kmalloc@p(E2,E1,E3); 3338c2ecf20Sopenharmony_ci if ((x==NULL) || ...) S 3348c2ecf20Sopenharmony_ci memset((T2)x,0,E1); 3358c2ecf20Sopenharmony_ci 3368c2ecf20Sopenharmony_ci@script:python depends on org@ 3378c2ecf20Sopenharmony_cip << r6.p; 3388c2ecf20Sopenharmony_cix << r6.x; 3398c2ecf20Sopenharmony_ci@@ 3408c2ecf20Sopenharmony_ci 3418c2ecf20Sopenharmony_cimsg="%s" % (x) 3428c2ecf20Sopenharmony_cimsg_safe=msg.replace("[","@(").replace("]",")") 3438c2ecf20Sopenharmony_cicoccilib.org.print_todo(p[0], msg_safe) 3448c2ecf20Sopenharmony_ci 3458c2ecf20Sopenharmony_ci@script:python depends on report@ 3468c2ecf20Sopenharmony_cip << r6.p; 3478c2ecf20Sopenharmony_cix << r6.x; 3488c2ecf20Sopenharmony_ci@@ 3498c2ecf20Sopenharmony_ci 3508c2ecf20Sopenharmony_cimsg="WARNING: devm_kzalloc should be used for %s, instead of devm_kmalloc/memset" % (x) 3518c2ecf20Sopenharmony_cicoccilib.report.print_report(p[0], msg) 3528c2ecf20Sopenharmony_ci 3538c2ecf20Sopenharmony_ci//----------------------------------------------------------------- 3548c2ecf20Sopenharmony_ci@r7 depends on org || report@ 3558c2ecf20Sopenharmony_citype T, T2; 3568c2ecf20Sopenharmony_ciexpression x; 3578c2ecf20Sopenharmony_ciexpression E1,E2; 3588c2ecf20Sopenharmony_cistatement S; 3598c2ecf20Sopenharmony_ciposition p; 3608c2ecf20Sopenharmony_ci@@ 3618c2ecf20Sopenharmony_ci 3628c2ecf20Sopenharmony_ci x = (T)kvmalloc@p(E1,E2); 3638c2ecf20Sopenharmony_ci if ((x==NULL) || ...) S 3648c2ecf20Sopenharmony_ci memset((T2)x,0,E1); 3658c2ecf20Sopenharmony_ci 3668c2ecf20Sopenharmony_ci@script:python depends on org@ 3678c2ecf20Sopenharmony_cip << r7.p; 3688c2ecf20Sopenharmony_cix << r7.x; 3698c2ecf20Sopenharmony_ci@@ 3708c2ecf20Sopenharmony_ci 3718c2ecf20Sopenharmony_cimsg="%s" % (x) 3728c2ecf20Sopenharmony_cimsg_safe=msg.replace("[","@(").replace("]",")") 3738c2ecf20Sopenharmony_cicoccilib.org.print_todo(p[0], msg_safe) 3748c2ecf20Sopenharmony_ci 3758c2ecf20Sopenharmony_ci@script:python depends on report@ 3768c2ecf20Sopenharmony_cip << r7.p; 3778c2ecf20Sopenharmony_cix << r7.x; 3788c2ecf20Sopenharmony_ci@@ 3798c2ecf20Sopenharmony_ci 3808c2ecf20Sopenharmony_cimsg="WARNING: kvzalloc should be used for %s, instead of kvmalloc/memset" % (x) 3818c2ecf20Sopenharmony_cicoccilib.report.print_report(p[0], msg) 3828c2ecf20Sopenharmony_ci 3838c2ecf20Sopenharmony_ci//----------------------------------------------------------------- 3848c2ecf20Sopenharmony_ci@r9 depends on org || report@ 3858c2ecf20Sopenharmony_citype T, T2; 3868c2ecf20Sopenharmony_ciexpression x; 3878c2ecf20Sopenharmony_ciexpression E1,E2,E3; 3888c2ecf20Sopenharmony_cistatement S; 3898c2ecf20Sopenharmony_ciposition p; 3908c2ecf20Sopenharmony_ci@@ 3918c2ecf20Sopenharmony_ci 3928c2ecf20Sopenharmony_ci x = (T)kvmalloc_node@p(E1,E2,E3); 3938c2ecf20Sopenharmony_ci if ((x==NULL) || ...) S 3948c2ecf20Sopenharmony_ci memset((T2)x,0,E1); 3958c2ecf20Sopenharmony_ci 3968c2ecf20Sopenharmony_ci@script:python depends on org@ 3978c2ecf20Sopenharmony_cip << r9.p; 3988c2ecf20Sopenharmony_cix << r9.x; 3998c2ecf20Sopenharmony_ci@@ 4008c2ecf20Sopenharmony_ci 4018c2ecf20Sopenharmony_cimsg="%s" % (x) 4028c2ecf20Sopenharmony_cimsg_safe=msg.replace("[","@(").replace("]",")") 4038c2ecf20Sopenharmony_cicoccilib.org.print_todo(p[0], msg_safe) 4048c2ecf20Sopenharmony_ci 4058c2ecf20Sopenharmony_ci@script:python depends on report@ 4068c2ecf20Sopenharmony_cip << r9.p; 4078c2ecf20Sopenharmony_cix << r9.x; 4088c2ecf20Sopenharmony_ci@@ 4098c2ecf20Sopenharmony_ci 4108c2ecf20Sopenharmony_cimsg="WARNING: kvzalloc_node should be used for %s, instead of kvmalloc_node/memset" % (x) 4118c2ecf20Sopenharmony_cicoccilib.report.print_report(p[0], msg) 412