Merge tag 'drm-intel-next-queued-2020-11-03' of git://anongit.freedesktop.org/drm...
[linux-2.6-microblaze.git] / scripts / coccinelle / api / vma_pages.cocci
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
8
9 virtual context
10 virtual patch
11 virtual org
12 virtual report
13
14 //----------------------------------------------------------
15 //  For context mode
16 //----------------------------------------------------------
17
18 @r_context depends on context && !patch && !org && !report@
19 struct vm_area_struct *vma;
20 @@
21
22 * (vma->vm_end - vma->vm_start) >> PAGE_SHIFT
23
24 //----------------------------------------------------------
25 //  For patch mode
26 //----------------------------------------------------------
27
28 @r_patch depends on !context && patch && !org && !report@
29 struct vm_area_struct *vma;
30 @@
31
32 - ((vma->vm_end - vma->vm_start) >> PAGE_SHIFT)
33 + vma_pages(vma)
34
35 //----------------------------------------------------------
36 //  For org mode
37 //----------------------------------------------------------
38
39 @r_org depends on !context && !patch && (org || report)@
40 struct vm_area_struct *vma;
41 position p;
42 @@
43
44   (vma->vm_end@p - vma->vm_start) >> PAGE_SHIFT
45
46 @script:python depends on report@
47 p << r_org.p;
48 x << r_org.vma;
49 @@
50
51 msg="WARNING: Consider using vma_pages helper on %s" % (x)
52 coccilib.report.print_report(p[0], msg)
53
54 @script:python depends on org@
55 p << r_org.p;
56 x << r_org.vma;
57 @@
58
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)