Lines Matching refs:mm
78 struct mm_struct *mm; member
175 mmdrop(ctx->mm); in userfaultfd_ctx_put()
233 struct mm_struct *mm = ctx->mm; in userfaultfd_huge_must_wait() local
237 VM_BUG_ON(!rwsem_is_locked(&mm->mmap_sem)); in userfaultfd_huge_must_wait()
239 ptep = huge_pte_offset(mm, address, vma_mmu_pagesize(vma)); in userfaultfd_huge_must_wait()
281 struct mm_struct *mm = ctx->mm; in userfaultfd_must_wait() local
289 VM_BUG_ON(!rwsem_is_locked(&mm->mmap_sem)); in userfaultfd_must_wait()
291 pgd = pgd_offset(mm, address); in userfaultfd_must_wait()
354 struct mm_struct *mm = vmf->vma->vm_mm; in handle_userfault() local
379 WARN_ON_ONCE(!rwsem_is_locked(&mm->mmap_sem)); in handle_userfault()
385 BUG_ON(ctx->mm != mm); in handle_userfault()
492 up_read(&mm->mmap_sem); in handle_userfault()
546 down_read(&mm->mmap_sem); in handle_userfault()
638 struct mm_struct *mm = release_new_ctx->mm; in userfaultfd_event_wait_completion() local
641 down_write(&mm->mmap_sem); in userfaultfd_event_wait_completion()
643 VM_WARN_ON(!mmget_still_valid(mm)); in userfaultfd_event_wait_completion()
644 for (vma = mm->mmap; vma; vma = vma->vm_next) in userfaultfd_event_wait_completion()
649 up_write(&mm->mmap_sem); in userfaultfd_event_wait_completion()
706 ctx->mm = vma->vm_mm; in dup_userfaultfd()
707 mmgrab(ctx->mm); in dup_userfaultfd()
793 struct mm_struct *mm = vma->vm_mm; in userfaultfd_remove() local
803 up_read(&mm->mmap_sem); in userfaultfd_remove()
856 void userfaultfd_unmap_complete(struct mm_struct *mm, struct list_head *uf) in userfaultfd_unmap_complete() argument
878 struct mm_struct *mm = ctx->mm; in userfaultfd_release() local
887 if (!mmget_not_zero(mm)) in userfaultfd_release()
898 down_write(&mm->mmap_sem); in userfaultfd_release()
899 still_valid = mmget_still_valid(mm); in userfaultfd_release()
901 for (vma = mm->mmap; vma; vma = vma->vm_next) { in userfaultfd_release()
911 prev = vma_merge(mm, prev, vma->vm_start, vma->vm_end, in userfaultfd_release()
925 up_write(&mm->mmap_sem); in userfaultfd_release()
926 mmput(mm); in userfaultfd_release()
1275 static __always_inline int validate_range(struct mm_struct *mm, in validate_range() argument
1278 __u64 task_size = mm->task_size; in validate_range()
1306 struct mm_struct *mm = ctx->mm; in userfaultfd_register() local
1342 ret = validate_range(mm, &uffdio_register.range.start, in userfaultfd_register()
1351 if (!mmget_not_zero(mm)) in userfaultfd_register()
1354 down_write(&mm->mmap_sem); in userfaultfd_register()
1355 if (!mmget_still_valid(mm)) in userfaultfd_register()
1357 vma = find_vma_prev(mm, start, &prev); in userfaultfd_register()
1465 prev = vma_merge(mm, prev, start, vma_end, new_flags, in userfaultfd_register()
1475 ret = split_vma(mm, vma, start, 1); in userfaultfd_register()
1480 ret = split_vma(mm, vma, end, 0); in userfaultfd_register()
1499 up_write(&mm->mmap_sem); in userfaultfd_register()
1500 mmput(mm); in userfaultfd_register()
1519 struct mm_struct *mm = ctx->mm; in userfaultfd_unregister() local
1532 ret = validate_range(mm, &uffdio_unregister.start, in userfaultfd_unregister()
1541 if (!mmget_not_zero(mm)) in userfaultfd_unregister()
1544 down_write(&mm->mmap_sem); in userfaultfd_unregister()
1545 if (!mmget_still_valid(mm)) in userfaultfd_unregister()
1547 vma = find_vma_prev(mm, start, &prev); in userfaultfd_unregister()
1628 prev = vma_merge(mm, prev, start, vma_end, new_flags, in userfaultfd_unregister()
1638 ret = split_vma(mm, vma, start, 1); in userfaultfd_unregister()
1643 ret = split_vma(mm, vma, end, 0); in userfaultfd_unregister()
1662 up_write(&mm->mmap_sem); in userfaultfd_unregister()
1663 mmput(mm); in userfaultfd_unregister()
1684 ret = validate_range(ctx->mm, &uffdio_wake.start, uffdio_wake.len); in userfaultfd_wake()
1724 ret = validate_range(ctx->mm, &uffdio_copy.dst, uffdio_copy.len); in userfaultfd_copy()
1737 if (mmget_not_zero(ctx->mm)) { in userfaultfd_copy()
1738 ret = mcopy_atomic(ctx->mm, uffdio_copy.dst, uffdio_copy.src, in userfaultfd_copy()
1740 mmput(ctx->mm); in userfaultfd_copy()
1780 ret = validate_range(ctx->mm, &uffdio_zeropage.range.start, in userfaultfd_zeropage()
1788 if (mmget_not_zero(ctx->mm)) { in userfaultfd_zeropage()
1789 ret = mfill_zeropage(ctx->mm, uffdio_zeropage.range.start, in userfaultfd_zeropage()
1792 mmput(ctx->mm); in userfaultfd_zeropage()
1956 BUG_ON(!current->mm); in SYSCALL_DEFINE1()
1975 ctx->mm = current->mm; in SYSCALL_DEFINE1()
1977 mmgrab(ctx->mm); in SYSCALL_DEFINE1()
1982 mmdrop(ctx->mm); in SYSCALL_DEFINE1()