Lines Matching refs:mm
59 struct mm_struct *mm; member
140 mmput(ctx->mm); in userfaultfd_ctx_put()
196 struct mm_struct *mm = ctx->mm; in userfaultfd_must_wait() local
203 VM_BUG_ON(!rwsem_is_locked(&mm->mmap_sem)); in userfaultfd_must_wait()
205 pgd = pgd_offset(mm, address); in userfaultfd_must_wait()
263 struct mm_struct *mm = vma->vm_mm; in handle_userfault() local
269 BUG_ON(!rwsem_is_locked(&mm->mmap_sem)); in handle_userfault()
276 BUG_ON(ctx->mm != mm); in handle_userfault()
357 up_read(&mm->mmap_sem); in handle_userfault()
388 down_read(&mm->mmap_sem); in handle_userfault()
429 struct mm_struct *mm = ctx->mm; in userfaultfd_release() local
445 down_write(&mm->mmap_sem); in userfaultfd_release()
447 for (vma = mm->mmap; vma; vma = vma->vm_next) { in userfaultfd_release()
456 prev = vma_merge(mm, prev, vma->vm_start, vma->vm_end, in userfaultfd_release()
468 up_write(&mm->mmap_sem); in userfaultfd_release()
697 static __always_inline int validate_range(struct mm_struct *mm, in validate_range() argument
700 __u64 task_size = mm->task_size; in validate_range()
720 struct mm_struct *mm = ctx->mm; in userfaultfd_register() local
755 ret = validate_range(mm, uffdio_register.range.start, in userfaultfd_register()
763 down_write(&mm->mmap_sem); in userfaultfd_register()
764 vma = find_vma_prev(mm, start, &prev); in userfaultfd_register()
833 prev = vma_merge(mm, prev, start, vma_end, new_flags, in userfaultfd_register()
842 ret = split_vma(mm, vma, start, 1); in userfaultfd_register()
847 ret = split_vma(mm, vma, end, 0); in userfaultfd_register()
866 up_write(&mm->mmap_sem); in userfaultfd_register()
884 struct mm_struct *mm = ctx->mm; in userfaultfd_unregister() local
897 ret = validate_range(mm, uffdio_unregister.start, in userfaultfd_unregister()
905 down_write(&mm->mmap_sem); in userfaultfd_unregister()
906 vma = find_vma_prev(mm, start, &prev); in userfaultfd_unregister()
967 prev = vma_merge(mm, prev, start, vma_end, new_flags, in userfaultfd_unregister()
976 ret = split_vma(mm, vma, start, 1); in userfaultfd_unregister()
981 ret = split_vma(mm, vma, end, 0); in userfaultfd_unregister()
1000 up_write(&mm->mmap_sem); in userfaultfd_unregister()
1021 ret = validate_range(ctx->mm, uffdio_wake.start, uffdio_wake.len); in userfaultfd_wake()
1057 ret = validate_range(ctx->mm, uffdio_copy.dst, uffdio_copy.len); in userfaultfd_copy()
1071 ret = mcopy_atomic(ctx->mm, uffdio_copy.dst, uffdio_copy.src, in userfaultfd_copy()
1105 ret = validate_range(ctx->mm, uffdio_zeropage.range.start, in userfaultfd_zeropage()
1113 ret = mfill_zeropage(ctx->mm, uffdio_zeropage.range.start, in userfaultfd_zeropage()
1271 BUG_ON(!current->mm); in userfaultfd_file_create()
1290 ctx->mm = current->mm; in userfaultfd_file_create()
1292 atomic_inc(&ctx->mm->mm_users); in userfaultfd_file_create()
1297 mmput(ctx->mm); in userfaultfd_file_create()