]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
io_uring: allow multishot recv CQEs to overflow
authorDylan Yudaken <dylany@meta.com>
Mon, 7 Nov 2022 12:52:35 +0000 (04:52 -0800)
committerJens Axboe <axboe@kernel.dk>
Mon, 21 Nov 2022 14:44:09 +0000 (07:44 -0700)
With commit aa1df3a360a0 ("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: Dylan Yudaken <dylany@meta.com>
Link: https://lore.kernel.org/r/20221107125236.260132-4-dylany@meta.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/net.c

index f7b2b068464d011ae742a9d7c1c2be12f4daf38d..0de6f78ad978a9dc5919b03f85245bbdcae88032 100644 (file)
@@ -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);