Lines Matching refs:msg
68 struct uffd_msg msg; member
120 if (len && (start > uwq->msg.arg.pagefault.address || in userfaultfd_wake_function()
121 start + len <= uwq->msg.arg.pagefault.address)) in userfaultfd_wake_function()
181 static inline void msg_init(struct uffd_msg *msg) in msg_init() argument
188 memset(msg, 0, sizeof(struct uffd_msg)); in msg_init()
197 struct uffd_msg msg; in userfault_msg() local
199 msg_init(&msg); in userfault_msg()
200 msg.event = UFFD_EVENT_PAGEFAULT; in userfault_msg()
202 msg.arg.pagefault.address = (features & UFFD_FEATURE_EXACT_ADDRESS) ? in userfault_msg()
215 msg.arg.pagefault.flags |= UFFD_PAGEFAULT_FLAG_WRITE; in userfault_msg()
217 msg.arg.pagefault.flags |= UFFD_PAGEFAULT_FLAG_WP; in userfault_msg()
219 msg.arg.pagefault.flags |= UFFD_PAGEFAULT_FLAG_MINOR; in userfault_msg()
221 msg.arg.pagefault.feat.ptid = task_pid_vnr(current); in userfault_msg()
222 return msg; in userfault_msg()
463 uwq.msg = userfault_msg(vmf->address, vmf->real_address, vmf->flags, in handle_userfault()
561 if (ewq->msg.event == 0) in userfaultfd_event_wait_completion()
572 if (ewq->msg.event == UFFD_EVENT_FORK) { in userfaultfd_event_wait_completion()
577 ewq->msg.arg.reserved.reserved1; in userfaultfd_event_wait_completion()
611 ewq->msg.event = 0; in userfaultfd_event_complete()
674 msg_init(&ewq.msg); in dup_fctx()
676 ewq.msg.event = UFFD_EVENT_FORK; in dup_fctx()
677 ewq.msg.arg.reserved.reserved1 = (unsigned long)fctx->new; in dup_fctx()
753 msg_init(&ewq.msg); in mremap_userfaultfd_complete()
755 ewq.msg.event = UFFD_EVENT_REMAP; in mremap_userfaultfd_complete()
756 ewq.msg.arg.remap.from = from; in mremap_userfaultfd_complete()
757 ewq.msg.arg.remap.to = to; in mremap_userfaultfd_complete()
758 ewq.msg.arg.remap.len = len; in mremap_userfaultfd_complete()
790 msg_init(&ewq.msg); in userfaultfd_remove()
792 ewq.msg.event = UFFD_EVENT_REMOVE; in userfaultfd_remove()
793 ewq.msg.arg.remove.start = start; in userfaultfd_remove()
794 ewq.msg.arg.remove.end = end; in userfaultfd_remove()
846 msg_init(&ewq.msg); in userfaultfd_unmap_complete()
848 ewq.msg.event = UFFD_EVENT_UNMAP; in userfaultfd_unmap_complete()
849 ewq.msg.arg.remove.start = ctx->start; in userfaultfd_unmap_complete()
850 ewq.msg.arg.remove.end = ctx->end; in userfaultfd_unmap_complete()
959 struct uffd_msg *msg) in resolve_userfault_fork() argument
968 msg->arg.reserved.reserved1 = 0; in resolve_userfault_fork()
969 msg->arg.fork.ufd = fd; in resolve_userfault_fork()
974 struct uffd_msg *msg, struct inode *inode) in userfaultfd_ctx_read() argument
1033 *msg = uwq->msg; in userfaultfd_ctx_read()
1043 *msg = uwq->msg; in userfaultfd_ctx_read()
1045 if (uwq->msg.event == UFFD_EVENT_FORK) { in userfaultfd_ctx_read()
1048 uwq->msg.arg.reserved.reserved1; in userfaultfd_ctx_read()
1084 if (!ret && msg->event == UFFD_EVENT_FORK) { in userfaultfd_ctx_read()
1085 ret = resolve_userfault_fork(fork_nctx, inode, msg); in userfaultfd_ctx_read()
1143 struct uffd_msg msg; in userfaultfd_read_iter() local
1152 if (iov_iter_count(to) < sizeof(msg)) in userfaultfd_read_iter()
1154 _ret = userfaultfd_ctx_read(ctx, no_wait, &msg, inode); in userfaultfd_read_iter()
1157 _ret = !copy_to_iter_full(&msg, sizeof(msg), to); in userfaultfd_read_iter()
1160 ret += sizeof(msg); in userfaultfd_read_iter()