Lines Matching refs:vma
478 struct vm_area_struct *vma) in vfio_platform_mmap_mmio() argument
482 req_len = vma->vm_end - vma->vm_start; in vfio_platform_mmap_mmio()
483 pgoff = vma->vm_pgoff & in vfio_platform_mmap_mmio()
490 vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); in vfio_platform_mmap_mmio()
491 vma->vm_pgoff = (region.addr >> PAGE_SHIFT) + pgoff; in vfio_platform_mmap_mmio()
493 return remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff, in vfio_platform_mmap_mmio()
494 req_len, vma->vm_page_prot); in vfio_platform_mmap_mmio()
497 static int vfio_platform_mmap(void *device_data, struct vm_area_struct *vma) in vfio_platform_mmap() argument
502 index = vma->vm_pgoff >> (VFIO_PLATFORM_OFFSET_SHIFT - PAGE_SHIFT); in vfio_platform_mmap()
504 if (vma->vm_end < vma->vm_start) in vfio_platform_mmap()
506 if (!(vma->vm_flags & VM_SHARED)) in vfio_platform_mmap()
510 if (vma->vm_start & ~PAGE_MASK) in vfio_platform_mmap()
512 if (vma->vm_end & ~PAGE_MASK) in vfio_platform_mmap()
519 && (vma->vm_flags & VM_READ)) in vfio_platform_mmap()
523 && (vma->vm_flags & VM_WRITE)) in vfio_platform_mmap()
526 vma->vm_private_data = vdev; in vfio_platform_mmap()
529 return vfio_platform_mmap_mmio(vdev->regions[index], vma); in vfio_platform_mmap()