Linux 4.16.11
[linux/fpc-iii.git] / scripts / coccinelle / api / vma_pages.cocci
blob10511b9bf35eba966b99810a824dcbf3e57f7f60
1 // SPDX-License-Identifier: GPL-2.0
2 ///
3 /// Use vma_pages function on vma object instead of explicit computation.
4 ///
5 //  Confidence: High
6 //  Keywords: vma_pages vma
7 //  Comment: Based on resource_size.cocci
9 virtual context
10 virtual patch
11 virtual org
12 virtual report
14 //----------------------------------------------------------
15 //  For context mode
16 //----------------------------------------------------------
18 @r_context depends on context && !patch && !org && !report@
19 struct vm_area_struct *vma;
22 * (vma->vm_end - vma->vm_start) >> PAGE_SHIFT
24 //----------------------------------------------------------
25 //  For patch mode
26 //----------------------------------------------------------
28 @r_patch depends on !context && patch && !org && !report@
29 struct vm_area_struct *vma;
32 - ((vma->vm_end - vma->vm_start) >> PAGE_SHIFT)
33 + vma_pages(vma)
35 //----------------------------------------------------------
36 //  For org mode
37 //----------------------------------------------------------
39 @r_org depends on !context && !patch && (org || report)@
40 struct vm_area_struct *vma;
41 position p;
44   (vma->vm_end@p - vma->vm_start) >> PAGE_SHIFT
46 @script:python depends on report@
47 p << r_org.p;
48 x << r_org.vma;
51 msg="WARNING: Consider using vma_pages helper on %s" % (x)
52 coccilib.report.print_report(p[0], msg)
54 @script:python depends on org@
55 p << r_org.p;
56 x << r_org.vma;
59 msg="WARNING: Consider using vma_pages helper on %s" % (x)
60 msg_safe=msg.replace("[","@(").replace("]",")")
61 coccilib.org.print_todo(p[0], msg_safe)