cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

vma_pages.cocci (1519B)


      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
      9virtual context
     10virtual patch
     11virtual org
     12virtual report
     13
     14//----------------------------------------------------------
     15//  For context mode
     16//----------------------------------------------------------
     17
     18@r_context depends on context && !patch && !org && !report@
     19struct 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@
     29struct 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)@
     40struct vm_area_struct *vma;
     41position p;
     42@@
     43
     44  (vma->vm_end@p - vma->vm_start) >> PAGE_SHIFT
     45
     46@script:python depends on report@
     47p << r_org.p;
     48x << r_org.vma;
     49@@
     50
     51msg="WARNING: Consider using vma_pages helper on %s" % (x)
     52coccilib.report.print_report(p[0], msg)
     53
     54@script:python depends on org@
     55p << r_org.p;
     56x << r_org.vma;
     57@@
     58
     59msg="WARNING: Consider using vma_pages helper on %s" % (x)
     60msg_safe=msg.replace("[","@(").replace("]",")")
     61coccilib.org.print_todo(p[0], msg_safe)