Lines Matching refs:uffdio_copy
4106 struct uffdio_copy uffdio_copy; in userfaultfd_copy() local
4107 struct uffdio_copy __user *user_uffdio_copy; in userfaultfd_copy()
4111 user_uffdio_copy = (struct uffdio_copy __user *) arg; in userfaultfd_copy()
4121 if (copy_from_user(&uffdio_copy, user_uffdio_copy, in userfaultfd_copy()
4123 sizeof(uffdio_copy)-sizeof(__s64))) in userfaultfd_copy()
4126 ret = validate_unaligned_range(ctx->mm, uffdio_copy.src, in userfaultfd_copy()
4127 uffdio_copy.len); in userfaultfd_copy()
4130 ret = validate_range(ctx->mm, uffdio_copy.dst, uffdio_copy.len); in userfaultfd_copy()
4135 if (uffdio_copy.mode & ~(UFFDIO_COPY_MODE_DONTWAKE|UFFDIO_COPY_MODE_WP)) in userfaultfd_copy()
4137 if (uffdio_copy.mode & UFFDIO_COPY_MODE_WP) in userfaultfd_copy()
4140 ret = mfill_atomic_copy(ctx, uffdio_copy.dst, uffdio_copy.src, in userfaultfd_copy()
4141 uffdio_copy.len, flags); in userfaultfd_copy()
4153 if (!(uffdio_copy.mode & UFFDIO_COPY_MODE_DONTWAKE)) { in userfaultfd_copy()
4154 range.start = uffdio_copy.dst; in userfaultfd_copy()
4157 ret = range.len == uffdio_copy.len ? 0 : -EAGAIN; in userfaultfd_copy()