On 11/21/22 3:03?AM, Dylan Yudaken wrote: > diff --git a/io_uring/msg_ring.c b/io_uring/msg_ring.c > index afb543aab9f6..c5e831e3dcfc 100644 > --- a/io_uring/msg_ring.c > +++ b/io_uring/msg_ring.c > @@ -23,7 +23,7 @@ struct io_msg { > u32 flags; > }; > > -static int io_msg_ring_data(struct io_kiocb *req) > +static int io_msg_ring_data(struct io_kiocb *req, unsigned int issue_flags) > { > struct io_ring_ctx *target_ctx = req->file->private_data; > struct io_msg *msg = io_kiocb_to_cmd(req, struct io_msg); > @@ -31,7 +31,8 @@ static int io_msg_ring_data(struct io_kiocb *req) > if (msg->src_fd || msg->dst_fd || msg->flags) > return -EINVAL; > > - if (io_post_aux_cqe(target_ctx, msg->user_data, msg->len, 0)) > + if (io_post_aux_cqe(target_ctx, false, > + msg->user_data, msg->len, 0)) > return 0; > > return -EOVERFLOW; > @@ -116,7 +117,8 @@ static int io_msg_send_fd(struct io_kiocb *req, unsigned int issue_flags) > * completes with -EOVERFLOW, then the sender must ensure that a > * later IORING_OP_MSG_RING delivers the message. > */ > - if (!io_post_aux_cqe(target_ctx, msg->user_data, msg->len, 0)) > + if (!io_post_aux_cqe(target_ctx, false, > + msg->user_data, msg->len, 0)) > ret = -EOVERFLOW; > out_unlock: > io_double_unlock_ctx(ctx, target_ctx, issue_flags); > @@ -153,7 +155,7 @@ int io_msg_ring(struct io_kiocb *req, unsigned int issue_flags) > > switch (msg->cmd) { > case IORING_MSG_DATA: > - ret = io_msg_ring_data(req); > + ret = io_msg_ring_data(req, issue_flags); > break; > case IORING_MSG_SEND_FD: > ret = io_msg_send_fd(req, issue_flags); This is a bit odd, either we can drop this or it should be wired up for defer? -- Jens Axboe