Commit e2ad599d authored by Dylan Yudaken's avatar Dylan Yudaken Committed by Jens Axboe
Browse files

io_uring: allow multishot recv CQEs to overflow



With commit aa1df3a3 ("io_uring: fix CQE reordering"), there are
stronger guarantees for overflow ordering. Specifically ensuring that
userspace will not receive out of order receive CQEs. Therefore this is
not needed any more for recv/recvmsg.

Signed-off-by: default avatarDylan Yudaken <dylany@meta.com>
Link: https://lore.kernel.org/r/20221107125236.260132-4-dylany@meta.com


Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 515e2696
Loading
Loading
Loading
Loading
+2 −6
Original line number Diff line number Diff line
@@ -602,15 +602,11 @@ static inline bool io_recv_finish(struct io_kiocb *req, int *ret,

	if (!mshot_finished) {
		if (io_post_aux_cqe(req->ctx, req->cqe.user_data, *ret,
				    cflags | IORING_CQE_F_MORE, false)) {
				    cflags | IORING_CQE_F_MORE, true)) {
			io_recv_prep_retry(req);
			return false;
		}
		/*
		 * Otherwise stop multishot but use the current result.
		 * Probably will end up going into overflow, but this means
		 * we cannot trust the ordering anymore
		 */
		/* Otherwise stop multishot but use the current result. */
	}

	io_req_set_res(req, *ret, cflags);