1 // SPDX-License-Identifier: GPL-2.0 1 // SPDX-License-Identifier: GPL-2.0 2 /// 2 /// 3 /// Use vma_pages function on vma object inste 3 /// Use vma_pages function on vma object instead of explicit computation. 4 /// 4 /// 5 // Confidence: High 5 // Confidence: High 6 // Keywords: vma_pages vma 6 // Keywords: vma_pages vma 7 // Comment: Based on resource_size.cocci 7 // Comment: Based on resource_size.cocci 8 8 9 virtual context 9 virtual context 10 virtual patch 10 virtual patch 11 virtual org 11 virtual org 12 virtual report 12 virtual report 13 13 14 //-------------------------------------------- 14 //---------------------------------------------------------- 15 // For context mode 15 // For context mode 16 //-------------------------------------------- 16 //---------------------------------------------------------- 17 17 18 @r_context depends on context && !patch && !or 18 @r_context depends on context && !patch && !org && !report@ 19 struct vm_area_struct *vma; 19 struct vm_area_struct *vma; 20 @@ 20 @@ 21 21 22 * (vma->vm_end - vma->vm_start) >> PAGE_SHIFT 22 * (vma->vm_end - vma->vm_start) >> PAGE_SHIFT 23 23 24 //-------------------------------------------- 24 //---------------------------------------------------------- 25 // For patch mode 25 // For patch mode 26 //-------------------------------------------- 26 //---------------------------------------------------------- 27 27 28 @r_patch depends on !context && patch && !org 28 @r_patch depends on !context && patch && !org && !report@ 29 struct vm_area_struct *vma; 29 struct vm_area_struct *vma; 30 @@ 30 @@ 31 31 32 - ((vma->vm_end - vma->vm_start) >> PAGE_SHIFT 32 - ((vma->vm_end - vma->vm_start) >> PAGE_SHIFT) 33 + vma_pages(vma) 33 + vma_pages(vma) 34 34 35 //-------------------------------------------- 35 //---------------------------------------------------------- 36 // For org mode 36 // For org mode 37 //-------------------------------------------- 37 //---------------------------------------------------------- 38 38 39 @r_org depends on !context && !patch && (org | 39 @r_org depends on !context && !patch && (org || report)@ 40 struct vm_area_struct *vma; 40 struct vm_area_struct *vma; 41 position p; 41 position p; 42 @@ 42 @@ 43 43 44 (vma->vm_end@p - vma->vm_start) >> PAGE_SHIF 44 (vma->vm_end@p - vma->vm_start) >> PAGE_SHIFT 45 45 46 @script:python depends on report@ 46 @script:python depends on report@ 47 p << r_org.p; 47 p << r_org.p; 48 x << r_org.vma; 48 x << r_org.vma; 49 @@ 49 @@ 50 50 51 msg="WARNING: Consider using vma_pages helper 51 msg="WARNING: Consider using vma_pages helper on %s" % (x) 52 coccilib.report.print_report(p[0], msg) 52 coccilib.report.print_report(p[0], msg) 53 53 54 @script:python depends on org@ 54 @script:python depends on org@ 55 p << r_org.p; 55 p << r_org.p; 56 x << r_org.vma; 56 x << r_org.vma; 57 @@ 57 @@ 58 58 59 msg="WARNING: Consider using vma_pages helper 59 msg="WARNING: Consider using vma_pages helper on %s" % (x) 60 msg_safe=msg.replace("[","@(").replace("]",")" 60 msg_safe=msg.replace("[","@(").replace("]",")") 61 coccilib.org.print_todo(p[0], msg_safe) 61 coccilib.org.print_todo(p[0], msg_safe)
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.