Lines Matching refs:vma
66 struct vm_area_struct *vma,
219 struct vm_area_struct *vma; member
227 struct vm_area_struct *vma = st->vma; in mmap_gfn_range() local
237 ((msg->va+(msg->npages<<PAGE_SHIFT)) > vma->vm_end)) in mmap_gfn_range()
240 rc = xen_remap_domain_gfn_range(vma, in mmap_gfn_range()
243 vma->vm_page_prot, in mmap_gfn_range()
258 struct vm_area_struct *vma; in privcmd_ioctl_mmap() local
288 vma = find_vma(mm, msg->va); in privcmd_ioctl_mmap()
291 if (!vma || (msg->va != vma->vm_start) || vma->vm_private_data) in privcmd_ioctl_mmap()
293 vma->vm_private_data = PRIV_VMA_LOCKED; in privcmd_ioctl_mmap()
296 state.va = vma->vm_start; in privcmd_ioctl_mmap()
297 state.vma = vma; in privcmd_ioctl_mmap()
317 struct vm_area_struct *vma; member
341 struct vm_area_struct *vma = st->vma; in mmap_batch_fn() local
342 struct page **pages = vma->vm_private_data; in mmap_batch_fn()
350 ret = xen_remap_domain_gfn_array(st->vma, st->va & PAGE_MASK, gfnp, nr, in mmap_batch_fn()
351 (int *)gfnp, st->vma->vm_page_prot, in mmap_batch_fn()
421 static int alloc_empty_pages(struct vm_area_struct *vma, int numpgs) in alloc_empty_pages() argument
437 BUG_ON(vma->vm_private_data != NULL); in alloc_empty_pages()
438 vma->vm_private_data = pages; in alloc_empty_pages()
452 struct vm_area_struct *vma; in privcmd_ioctl_mmap_batch() local
504 vma = find_vma(mm, m.addr); in privcmd_ioctl_mmap_batch()
505 if (!vma || in privcmd_ioctl_mmap_batch()
506 vma->vm_ops != &privcmd_vm_ops) { in privcmd_ioctl_mmap_batch()
522 if (vma->vm_private_data == NULL) { in privcmd_ioctl_mmap_batch()
523 if (m.addr != vma->vm_start || in privcmd_ioctl_mmap_batch()
524 m.addr + (nr_pages << PAGE_SHIFT) != vma->vm_end) { in privcmd_ioctl_mmap_batch()
529 ret = alloc_empty_pages(vma, nr_pages); in privcmd_ioctl_mmap_batch()
533 vma->vm_private_data = PRIV_VMA_LOCKED; in privcmd_ioctl_mmap_batch()
535 if (m.addr < vma->vm_start || in privcmd_ioctl_mmap_batch()
536 m.addr + (nr_pages << PAGE_SHIFT) > vma->vm_end) { in privcmd_ioctl_mmap_batch()
540 if (privcmd_vma_range_is_mapped(vma, m.addr, nr_pages)) { in privcmd_ioctl_mmap_batch()
547 state.vma = vma; in privcmd_ioctl_mmap_batch()
731 struct vm_area_struct *vma; in privcmd_ioctl_mmap_resource() local
746 vma = find_vma(mm, kdata.addr); in privcmd_ioctl_mmap_resource()
747 if (!vma || vma->vm_ops != &privcmd_vm_ops) { in privcmd_ioctl_mmap_resource()
764 rc = alloc_empty_pages(vma, nr); in privcmd_ioctl_mmap_resource()
768 pages = vma->vm_private_data; in privcmd_ioctl_mmap_resource()
776 vma->vm_private_data = PRIV_VMA_LOCKED; in privcmd_ioctl_mmap_resource()
795 rc = xen_remap_vma_range(vma, kdata.addr, kdata.num << PAGE_SHIFT); in privcmd_ioctl_mmap_resource()
802 num = xen_remap_domain_mfn_array(vma, in privcmd_ioctl_mmap_resource()
805 vma->vm_page_prot, in privcmd_ioctl_mmap_resource()
807 vma->vm_private_data); in privcmd_ioctl_mmap_resource()
893 static void privcmd_close(struct vm_area_struct *vma) in privcmd_close() argument
895 struct page **pages = vma->vm_private_data; in privcmd_close()
896 int numpgs = vma_pages(vma); in privcmd_close()
897 int numgfns = (vma->vm_end - vma->vm_start) >> XEN_PAGE_SHIFT; in privcmd_close()
903 rc = xen_unmap_domain_gfn_range(vma, numgfns, pages); in privcmd_close()
915 vmf->vma, vmf->vma->vm_start, vmf->vma->vm_end, in privcmd_fault()
926 static int privcmd_mmap(struct file *file, struct vm_area_struct *vma) in privcmd_mmap() argument
930 vma->vm_flags |= VM_IO | VM_PFNMAP | VM_DONTCOPY | in privcmd_mmap()
932 vma->vm_ops = &privcmd_vm_ops; in privcmd_mmap()
933 vma->vm_private_data = NULL; in privcmd_mmap()
949 struct vm_area_struct *vma, in privcmd_vma_range_is_mapped() argument
953 return apply_to_page_range(vma->vm_mm, addr, nr_pages << PAGE_SHIFT, in privcmd_vma_range_is_mapped()