Lines Matching refs:vma
418 struct vm_area_struct *vma) in vfio_platform_mmap_mmio() argument
422 req_len = vma->vm_end - vma->vm_start; in vfio_platform_mmap_mmio()
423 pgoff = vma->vm_pgoff & in vfio_platform_mmap_mmio()
430 vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); in vfio_platform_mmap_mmio()
431 vma->vm_pgoff = (region.addr >> PAGE_SHIFT) + pgoff; in vfio_platform_mmap_mmio()
433 return remap_pfn_range(vma, vma->vm_start, vma->vm_pgoff, in vfio_platform_mmap_mmio()
434 req_len, vma->vm_page_prot); in vfio_platform_mmap_mmio()
437 static int vfio_platform_mmap(void *device_data, struct vm_area_struct *vma) in vfio_platform_mmap() argument
442 index = vma->vm_pgoff >> (VFIO_PLATFORM_OFFSET_SHIFT - PAGE_SHIFT); in vfio_platform_mmap()
444 if (vma->vm_end < vma->vm_start) in vfio_platform_mmap()
446 if (!(vma->vm_flags & VM_SHARED)) in vfio_platform_mmap()
450 if (vma->vm_start & ~PAGE_MASK) in vfio_platform_mmap()
452 if (vma->vm_end & ~PAGE_MASK) in vfio_platform_mmap()
459 && (vma->vm_flags & VM_READ)) in vfio_platform_mmap()
463 && (vma->vm_flags & VM_WRITE)) in vfio_platform_mmap()
466 vma->vm_private_data = vdev; in vfio_platform_mmap()
469 return vfio_platform_mmap_mmio(vdev->regions[index], vma); in vfio_platform_mmap()