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