18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci/// 38c2ecf20Sopenharmony_ci/// Use vma_pages function on vma object instead of explicit computation. 48c2ecf20Sopenharmony_ci/// 58c2ecf20Sopenharmony_ci// Confidence: High 68c2ecf20Sopenharmony_ci// Keywords: vma_pages vma 78c2ecf20Sopenharmony_ci// Comment: Based on resource_size.cocci 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_civirtual context 108c2ecf20Sopenharmony_civirtual patch 118c2ecf20Sopenharmony_civirtual org 128c2ecf20Sopenharmony_civirtual report 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci//---------------------------------------------------------- 158c2ecf20Sopenharmony_ci// For context mode 168c2ecf20Sopenharmony_ci//---------------------------------------------------------- 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ci@r_context depends on context && !patch && !org && !report@ 198c2ecf20Sopenharmony_cistruct vm_area_struct *vma; 208c2ecf20Sopenharmony_ci@@ 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci* (vma->vm_end - vma->vm_start) >> PAGE_SHIFT 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci//---------------------------------------------------------- 258c2ecf20Sopenharmony_ci// For patch mode 268c2ecf20Sopenharmony_ci//---------------------------------------------------------- 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci@r_patch depends on !context && patch && !org && !report@ 298c2ecf20Sopenharmony_cistruct vm_area_struct *vma; 308c2ecf20Sopenharmony_ci@@ 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci- ((vma->vm_end - vma->vm_start) >> PAGE_SHIFT) 338c2ecf20Sopenharmony_ci+ vma_pages(vma) 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci//---------------------------------------------------------- 368c2ecf20Sopenharmony_ci// For org mode 378c2ecf20Sopenharmony_ci//---------------------------------------------------------- 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci@r_org depends on !context && !patch && (org || report)@ 408c2ecf20Sopenharmony_cistruct vm_area_struct *vma; 418c2ecf20Sopenharmony_ciposition p; 428c2ecf20Sopenharmony_ci@@ 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ci (vma->vm_end@p - vma->vm_start) >> PAGE_SHIFT 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ci@script:python depends on report@ 478c2ecf20Sopenharmony_cip << r_org.p; 488c2ecf20Sopenharmony_cix << r_org.vma; 498c2ecf20Sopenharmony_ci@@ 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_cimsg="WARNING: Consider using vma_pages helper on %s" % (x) 528c2ecf20Sopenharmony_cicoccilib.report.print_report(p[0], msg) 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci@script:python depends on org@ 558c2ecf20Sopenharmony_cip << r_org.p; 568c2ecf20Sopenharmony_cix << r_org.vma; 578c2ecf20Sopenharmony_ci@@ 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_cimsg="WARNING: Consider using vma_pages helper on %s" % (x) 608c2ecf20Sopenharmony_cimsg_safe=msg.replace("[","@(").replace("]",")") 618c2ecf20Sopenharmony_cicoccilib.org.print_todo(p[0], msg_safe) 62