Lines Matching refs:vma
84 struct vm_area_struct *vma; member
241 unsigned int pgnr = (addr - map->vma->vm_start) >> PAGE_SHIFT; in find_grant_ptes()
406 static void gntdev_vma_open(struct vm_area_struct *vma) in gntdev_vma_open() argument
408 struct grant_map *map = vma->vm_private_data; in gntdev_vma_open()
410 pr_debug("gntdev_vma_open %p\n", vma); in gntdev_vma_open()
414 static void gntdev_vma_close(struct vm_area_struct *vma) in gntdev_vma_close() argument
416 struct grant_map *map = vma->vm_private_data; in gntdev_vma_close()
417 struct file *file = vma->vm_file; in gntdev_vma_close()
420 pr_debug("gntdev_vma_close %p\n", vma); in gntdev_vma_close()
430 map->vma = NULL; in gntdev_vma_close()
433 vma->vm_private_data = NULL; in gntdev_vma_close()
437 static struct page *gntdev_vma_find_special_page(struct vm_area_struct *vma, in gntdev_vma_find_special_page() argument
440 struct grant_map *map = vma->vm_private_data; in gntdev_vma_find_special_page()
459 if (!map->vma) in unmap_if_in_range()
461 if (map->vma->vm_start >= end) in unmap_if_in_range()
463 if (map->vma->vm_end <= start) in unmap_if_in_range()
465 mstart = max(start, map->vma->vm_start); in unmap_if_in_range()
466 mend = min(end, map->vma->vm_end); in unmap_if_in_range()
469 map->vma->vm_start, map->vma->vm_end, in unmap_if_in_range()
472 (mstart - map->vma->vm_start) >> PAGE_SHIFT, in unmap_if_in_range()
510 if (!map->vma) in mn_release()
514 map->vma->vm_start, map->vma->vm_end); in mn_release()
519 if (!map->vma) in mn_release()
523 map->vma->vm_start, map->vma->vm_end); in mn_release()
665 struct vm_area_struct *vma; in gntdev_ioctl_get_offset_for_vaddr() local
674 vma = find_vma(current->mm, op.vaddr); in gntdev_ioctl_get_offset_for_vaddr()
675 if (!vma || vma->vm_ops != &gntdev_vmops) in gntdev_ioctl_get_offset_for_vaddr()
678 map = vma->vm_private_data; in gntdev_ioctl_get_offset_for_vaddr()
787 static int gntdev_mmap(struct file *flip, struct vm_area_struct *vma) in gntdev_mmap() argument
790 int index = vma->vm_pgoff; in gntdev_mmap()
791 int count = (vma->vm_end - vma->vm_start) >> PAGE_SHIFT; in gntdev_mmap()
795 if ((vma->vm_flags & VM_WRITE) && !(vma->vm_flags & VM_SHARED)) in gntdev_mmap()
799 index, count, vma->vm_start, vma->vm_pgoff); in gntdev_mmap()
805 if (use_ptemod && map->vma) in gntdev_mmap()
807 if (use_ptemod && priv->mm != vma->vm_mm) { in gntdev_mmap()
814 vma->vm_ops = &gntdev_vmops; in gntdev_mmap()
816 vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP | VM_MIXEDMAP; in gntdev_mmap()
819 vma->vm_flags |= VM_DONTCOPY; in gntdev_mmap()
821 vma->vm_private_data = map; in gntdev_mmap()
824 map->vma = vma; in gntdev_mmap()
827 if ((vma->vm_flags & VM_WRITE) && in gntdev_mmap()
832 if (!(vma->vm_flags & VM_WRITE)) in gntdev_mmap()
839 map->pages_vm_start = vma->vm_start; in gntdev_mmap()
840 err = apply_to_page_range(vma->vm_mm, vma->vm_start, in gntdev_mmap()
841 vma->vm_end - vma->vm_start, in gntdev_mmap()
855 err = vm_insert_page(vma, vma->vm_start + i*PAGE_SIZE, in gntdev_mmap()
872 apply_to_page_range(vma->vm_mm, vma->vm_start, in gntdev_mmap()
873 vma->vm_end - vma->vm_start, in gntdev_mmap()
889 map->vma = NULL; in gntdev_mmap()