Lines Matching refs:vma
97 bool userfaultfd_wp_unpopulated(struct vm_area_struct *vma) in userfaultfd_wp_unpopulated() argument
99 struct userfaultfd_ctx *ctx = vma->vm_userfaultfd_ctx.ctx; in userfaultfd_wp_unpopulated()
234 struct vm_area_struct *vma = vmf->vma; in userfaultfd_huge_must_wait() local
240 ptep = hugetlb_walk(vma, vmf->address, vma_mmu_pagesize(vma)); in userfaultfd_huge_must_wait()
245 pte = huge_ptep_get(vma->vm_mm, vmf->address, ptep); in userfaultfd_huge_must_wait()
365 struct vm_area_struct *vma = vmf->vma; in handle_userfault() local
366 struct mm_struct *mm = vma->vm_mm; in handle_userfault()
382 ctx = vma->vm_userfaultfd_ctx.ctx; in handle_userfault()
476 if (is_vm_hugetlb_page(vma)) in handle_userfault()
477 hugetlb_vma_lock_read(vma); in handle_userfault()
493 if (!is_vm_hugetlb_page(vma)) in handle_userfault()
497 if (is_vm_hugetlb_page(vma)) in handle_userfault()
498 hugetlb_vma_unlock_read(vma); in handle_userfault()
616 int dup_userfaultfd(struct vm_area_struct *vma, struct list_head *fcs) in dup_userfaultfd() argument
621 octx = vma->vm_userfaultfd_ctx.ctx; in dup_userfaultfd()
626 userfaultfd_reset_ctx(vma); in dup_userfaultfd()
653 ctx->mm = vma->vm_mm; in dup_userfaultfd()
665 vma->vm_userfaultfd_ctx.ctx = ctx; in dup_userfaultfd()
721 void mremap_userfaultfd_prep(struct vm_area_struct *vma, in mremap_userfaultfd_prep() argument
726 ctx = vma->vm_userfaultfd_ctx.ctx; in mremap_userfaultfd_prep()
739 userfaultfd_reset_ctx(vma); in mremap_userfaultfd_prep()
773 bool userfaultfd_remove(struct vm_area_struct *vma, in userfaultfd_remove() argument
776 struct mm_struct *mm = vma->vm_mm; in userfaultfd_remove()
780 ctx = vma->vm_userfaultfd_ctx.ctx; in userfaultfd_remove()
814 int userfaultfd_unmap_prep(struct vm_area_struct *vma, unsigned long start, in userfaultfd_unmap_prep() argument
818 struct userfaultfd_ctx *ctx = vma->vm_userfaultfd_ctx.ctx; in userfaultfd_unmap_prep()
1246 struct vm_area_struct *vma, *cur; in userfaultfd_register() local
1300 vma = vma_find(&vmi, end); in userfaultfd_register()
1301 if (!vma) in userfaultfd_register()
1308 if (is_vm_hugetlb_page(vma)) { in userfaultfd_register()
1309 unsigned long vma_hpagesize = vma_kernel_pagesize(vma); in userfaultfd_register()
1320 cur = vma; in userfaultfd_register()
1381 ret = userfaultfd_register_range(ctx, vma, vm_flags, start, end, in userfaultfd_register()
1420 struct vm_area_struct *vma, *prev, *cur; in userfaultfd_unregister() local
1448 vma = vma_find(&vmi, end); in userfaultfd_unregister()
1449 if (!vma) in userfaultfd_unregister()
1456 if (is_vm_hugetlb_page(vma)) { in userfaultfd_unregister()
1457 unsigned long vma_hpagesize = vma_kernel_pagesize(vma); in userfaultfd_unregister()
1467 cur = vma; in userfaultfd_unregister()
1498 if (vma->vm_start < start) in userfaultfd_unregister()
1499 prev = vma; in userfaultfd_unregister()
1502 for_each_vma_range(vmi, vma, end) { in userfaultfd_unregister()
1506 if (!vma->vm_userfaultfd_ctx.ctx) in userfaultfd_unregister()
1509 VM_WARN_ON_ONCE(vma->vm_userfaultfd_ctx.ctx != ctx); in userfaultfd_unregister()
1510 VM_WARN_ON_ONCE(!vma_can_userfault(vma, vma->vm_flags, wp_async)); in userfaultfd_unregister()
1511 VM_WARN_ON_ONCE(!(vma->vm_flags & VM_MAYWRITE)); in userfaultfd_unregister()
1513 if (vma->vm_start > start) in userfaultfd_unregister()
1514 start = vma->vm_start; in userfaultfd_unregister()
1515 vma_end = min(end, vma->vm_end); in userfaultfd_unregister()
1517 if (userfaultfd_missing(vma)) { in userfaultfd_unregister()
1527 wake_userfault(vma->vm_userfaultfd_ctx.ctx, &range); in userfaultfd_unregister()
1530 vma = userfaultfd_clear_vma(&vmi, prev, vma, in userfaultfd_unregister()
1532 if (IS_ERR(vma)) { in userfaultfd_unregister()
1533 ret = PTR_ERR(vma); in userfaultfd_unregister()
1538 prev = vma; in userfaultfd_unregister()
1539 start = vma->vm_end; in userfaultfd_unregister()
1869 bool userfaultfd_wp_async(struct vm_area_struct *vma) in userfaultfd_wp_async() argument
1871 return userfaultfd_wp_async_ctx(vma->vm_userfaultfd_ctx.ctx); in userfaultfd_wp_async()