Lines Matching refs:msg

192 	if (async_msg->msg.msg_name)  in io_setup_async_msg()
193 async_msg->msg.msg_name = &async_msg->addr; in io_setup_async_msg()
195 if ((req->flags & REQ_F_BUFFER_SELECT) && !async_msg->msg.msg_iter.nr_segs) in io_setup_async_msg()
199 if (iter_is_iovec(&kmsg->msg.msg_iter) && !kmsg->free_iov) { in io_setup_async_msg()
200 size_t fast_idx = iter_iov(&kmsg->msg.msg_iter) - kmsg->fast_iov; in io_setup_async_msg()
201 async_msg->msg.msg_iter.__iov = &async_msg->fast_iov[fast_idx]; in io_setup_async_msg()
210 struct compat_msghdr *msg, int ddir) in io_compat_msg_copy_hdr() argument
216 if (copy_from_user(msg, sr->umsg_compat, sizeof(*msg))) in io_compat_msg_copy_hdr()
219 uiov = compat_ptr(msg->msg_iov); in io_compat_msg_copy_hdr()
224 if (msg->msg_iovlen == 0) { in io_compat_msg_copy_hdr()
226 } else if (msg->msg_iovlen > 1) { in io_compat_msg_copy_hdr()
242 ret = __import_iovec(ddir, (struct iovec __user *)uiov, msg->msg_iovlen, in io_compat_msg_copy_hdr()
244 &iomsg->msg.msg_iter, true); in io_compat_msg_copy_hdr()
253 struct user_msghdr *msg, int ddir) in io_msg_copy_hdr() argument
258 if (copy_from_user(msg, sr->umsg, sizeof(*sr->umsg))) in io_msg_copy_hdr()
262 if (msg->msg_iovlen == 0) { in io_msg_copy_hdr()
266 } else if (msg->msg_iovlen > 1) { in io_msg_copy_hdr()
269 if (copy_from_user(iomsg->fast_iov, msg->msg_iov, in io_msg_copy_hdr()
270 sizeof(*msg->msg_iov))) in io_msg_copy_hdr()
280 ret = __import_iovec(ddir, msg->msg_iov, msg->msg_iovlen, UIO_FASTIOV, in io_msg_copy_hdr()
281 &iomsg->free_iov, &iomsg->msg.msg_iter, false); in io_msg_copy_hdr()
292 struct user_msghdr msg; in io_sendmsg_copy_hdr() local
295 iomsg->msg.msg_name = &iomsg->addr; in io_sendmsg_copy_hdr()
296 iomsg->msg.msg_iter.nr_segs = 0; in io_sendmsg_copy_hdr()
306 return __get_compat_msghdr(&iomsg->msg, &cmsg, NULL); in io_sendmsg_copy_hdr()
310 ret = io_msg_copy_hdr(req, iomsg, &msg, ITER_SOURCE); in io_sendmsg_copy_hdr()
314 ret = __copy_msghdr(&iomsg->msg, &msg, NULL); in io_sendmsg_copy_hdr()
317 sr->msg_control = iomsg->msg.msg_control_user; in io_sendmsg_copy_hdr()
416 kmsg->msg.msg_control_user = sr->msg_control; in io_sendmsg()
432 min_ret = iov_iter_count(&kmsg->msg.msg_iter); in io_sendmsg()
434 ret = __sys_sendmsg_sock(sock, &kmsg->msg, flags); in io_sendmsg()
440 kmsg->msg.msg_controllen = 0; in io_sendmsg()
441 kmsg->msg.msg_control = NULL; in io_sendmsg()
467 struct msghdr msg; in io_send() local
473 msg.msg_name = NULL; in io_send()
474 msg.msg_control = NULL; in io_send()
475 msg.msg_controllen = 0; in io_send()
476 msg.msg_namelen = 0; in io_send()
477 msg.msg_ubuf = NULL; in io_send()
483 msg.msg_name = &io->addr; in io_send()
488 msg.msg_name = (struct sockaddr *)&__address; in io_send()
490 msg.msg_namelen = sr->addr_len; in io_send()
501 ret = import_ubuf(ITER_SOURCE, sr->buf, sr->len, &msg.msg_iter); in io_send()
509 min_ret = iov_iter_count(&msg.msg_iter); in io_send()
512 msg.msg_flags = flags; in io_send()
513 ret = sock_sendmsg(sock, &msg); in io_send()
564 struct user_msghdr msg; in io_recvmsg_copy_hdr() local
567 iomsg->msg.msg_name = &iomsg->addr; in io_recvmsg_copy_hdr()
568 iomsg->msg.msg_iter.nr_segs = 0; in io_recvmsg_copy_hdr()
578 ret = __get_compat_msghdr(&iomsg->msg, &cmsg, &iomsg->uaddr); in io_recvmsg_copy_hdr()
587 ret = io_msg_copy_hdr(req, iomsg, &msg, ITER_DEST); in io_recvmsg_copy_hdr()
591 ret = __copy_msghdr(&iomsg->msg, &msg, &iomsg->uaddr); in io_recvmsg_copy_hdr()
595 return io_recvmsg_mshot_prep(req, iomsg, msg.msg_namelen, in io_recvmsg_copy_hdr()
596 msg.msg_controllen); in io_recvmsg_copy_hdr()
676 struct msghdr *msg, bool mshot_finished, in io_recv_finish() argument
682 if (msg->msg_inq && msg->msg_inq != -1) in io_recv_finish()
705 if (cflags & IORING_CQE_F_SOCK_NONEMPTY || msg->msg_inq == -1) { in io_recv_finish()
744 kmsg->msg.msg_control_user = (void __user *) control; in io_recvmsg_prep_multishot()
745 kmsg->msg.msg_controllen = kmsg->controllen; in io_recvmsg_prep_multishot()
755 struct io_uring_recvmsg_out msg; member
768 kmsg->msg.msg_name = &hdr.addr; in io_recvmsg_multishot()
769 kmsg->msg.msg_flags = flags & (MSG_CMSG_CLOEXEC|MSG_CMSG_COMPAT); in io_recvmsg_multishot()
770 kmsg->msg.msg_namelen = 0; in io_recvmsg_multishot()
775 err = sock_recvmsg(sock, &kmsg->msg, flags); in io_recvmsg_multishot()
780 hdr.msg = (struct io_uring_recvmsg_out) { in io_recvmsg_multishot()
781 .controllen = kmsg->controllen - kmsg->msg.msg_controllen, in io_recvmsg_multishot()
782 .flags = kmsg->msg.msg_flags & ~MSG_CMSG_COMPAT in io_recvmsg_multishot()
785 hdr.msg.payloadlen = err; in io_recvmsg_multishot()
790 if (kmsg->msg.msg_namelen > kmsg->namelen) in io_recvmsg_multishot()
793 copy_len += kmsg->msg.msg_namelen; in io_recvmsg_multishot()
799 hdr.msg.namelen = kmsg->msg.msg_namelen; in io_recvmsg_multishot()
860 iov_iter_ubuf(&kmsg->msg.msg_iter, ITER_DEST, buf, len); in io_recvmsg()
867 kmsg->msg.msg_get_inq = 1; in io_recvmsg()
868 kmsg->msg.msg_inq = -1; in io_recvmsg()
874 if (flags & MSG_WAITALL && !kmsg->msg.msg_controllen) in io_recvmsg()
875 min_ret = iov_iter_count(&kmsg->msg.msg_iter); in io_recvmsg()
877 ret = __sys_recvmsg_sock(sock, &kmsg->msg, sr->umsg, in io_recvmsg()
898 } else if ((flags & MSG_WAITALL) && (kmsg->msg.msg_flags & (MSG_TRUNC | MSG_CTRUNC))) { in io_recvmsg()
909 if (!io_recv_finish(req, &ret, &kmsg->msg, mshot_finished, issue_flags)) in io_recvmsg()
927 struct msghdr msg; in io_recv() local
945 msg.msg_name = NULL; in io_recv()
946 msg.msg_namelen = 0; in io_recv()
947 msg.msg_control = NULL; in io_recv()
948 msg.msg_get_inq = 1; in io_recv()
949 msg.msg_controllen = 0; in io_recv()
950 msg.msg_iocb = NULL; in io_recv()
951 msg.msg_ubuf = NULL; in io_recv()
964 ret = import_ubuf(ITER_DEST, sr->buf, len, &msg.msg_iter); in io_recv()
968 msg.msg_inq = -1; in io_recv()
969 msg.msg_flags = 0; in io_recv()
975 min_ret = iov_iter_count(&msg.msg_iter); in io_recv()
977 ret = sock_recvmsg(sock, &msg, flags); in io_recv()
997 } else if ((flags & MSG_WAITALL) && (msg.msg_flags & (MSG_TRUNC | MSG_CTRUNC))) { in io_recv()
1009 if (!io_recv_finish(req, &ret, &msg, ret <= 0, issue_flags)) in io_recv()
1164 struct msghdr msg; in io_send_zc() local
1175 msg.msg_name = NULL; in io_send_zc()
1176 msg.msg_control = NULL; in io_send_zc()
1177 msg.msg_controllen = 0; in io_send_zc()
1178 msg.msg_namelen = 0; in io_send_zc()
1184 msg.msg_name = &io->addr; in io_send_zc()
1189 msg.msg_name = (struct sockaddr *)&__address; in io_send_zc()
1191 msg.msg_namelen = zc->addr_len; in io_send_zc()
1199 ret = io_import_fixed(ITER_SOURCE, &msg.msg_iter, req->imu, in io_send_zc()
1203 msg.sg_from_iter = io_sg_from_iter; in io_send_zc()
1206 ret = import_ubuf(ITER_SOURCE, zc->buf, zc->len, &msg.msg_iter); in io_send_zc()
1212 msg.sg_from_iter = io_sg_from_iter_iovec; in io_send_zc()
1219 min_ret = iov_iter_count(&msg.msg_iter); in io_send_zc()
1222 msg.msg_flags = msg_flags; in io_send_zc()
1223 msg.msg_ubuf = &io_notif_to_data(zc->notif)->uarg; in io_send_zc()
1224 ret = sock_sendmsg(sock, &msg); in io_send_zc()
1230 if (ret > 0 && io_net_retry(sock, msg.msg_flags)) { in io_send_zc()
1277 kmsg->msg.msg_control_user = sr->msg_control; in io_sendmsg_zc()
1293 min_ret = iov_iter_count(&kmsg->msg.msg_iter); in io_sendmsg_zc()
1295 kmsg->msg.msg_ubuf = &io_notif_to_data(sr->notif)->uarg; in io_sendmsg_zc()
1296 kmsg->msg.sg_from_iter = io_sg_from_iter_iovec; in io_sendmsg_zc()
1297 ret = __sys_sendmsg_sock(sock, &kmsg->msg, flags); in io_sendmsg_zc()