Linux kernel -stable discussions
 help / color / mirror / Atom feed
From: <gregkh@linuxfoundation.org>
To: asml.silence@gmail.com,axboe@kernel.dk,leitao@debian.org
Cc: <stable@vger.kernel.org>
Subject: FAILED: patch "[PATCH] io_uring: fix lost getsockopt completions" failed to apply to 6.6-stable tree
Date: Mon, 29 Jul 2024 12:13:31 +0200	[thread overview]
Message-ID: <2024072931-sarcastic-coagulant-6821@gregkh> (raw)


The patch below does not apply to the 6.6-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable@vger.kernel.org>.

To reproduce the conflict and resubmit, you may use the following commands:

git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.6.y
git checkout FETCH_HEAD
git cherry-pick -x 24dce1c538a7ceac43f2f97aae8dfd4bb93ea9b9
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<stable@vger.kernel.org>' --in-reply-to '2024072931-sarcastic-coagulant-6821@gregkh' --subject-prefix 'PATCH 6.6.y' HEAD^..

Possible dependencies:

24dce1c538a7 ("io_uring: fix lost getsockopt completions")
d10f19dff56e ("io_uring/uring_cmd: switch to always allocating async data")
a9165b83c193 ("io_uring/rw: always setup io_async_rw for read/write requests")
8e5b3b89ecaf ("io_uring: remove struct io_tw_state::locked")
92219afb980e ("io_uring: force tw ctx locking")
6e6b8c62120a ("io_uring/rw: avoid punting to io-wq directly")
e1eef2e56cb0 ("io_uring/cmd: fix tw <-> issue_flags conversion")
6edd953b6ec7 ("io_uring/cmd: kill one issue_flags to tw conversion")
da12d9ab5889 ("io_uring/cmd: move io_uring_try_cancel_uring_cmd()")
8d0c12a80cde ("io-uring: add napi busy poll support")
405b4dc14b10 ("io-uring: move io_wait_queue definition to header file")
da08d2edb020 ("io_uring: re-arrange struct io_ring_ctx to reduce padding")
42c0905f0cac ("io_uring: cleanup handle_tw_list() calling convention")
9fe3eaea4a35 ("io_uring: remove unconditional looping in local task_work handling")
670d9d3df880 ("io_uring: remove next io_kiocb fetch in task_work running")
170539bdf109 ("io_uring: handle traditional task_work in FIFO order")
592b4805432a ("io_uring: remove looping around handling traditional task_work")
95041b93e90a ("io_uring: add io_file_can_poll() helper")
521223d7c229 ("io_uring/cancel: don't default to setting req->work.cancel_seq")
4bcb982cce74 ("io_uring: expand main struct io_kiocb flags to 64-bits")

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From 24dce1c538a7ceac43f2f97aae8dfd4bb93ea9b9 Mon Sep 17 00:00:00 2001
From: Pavel Begunkov <asml.silence@gmail.com>
Date: Tue, 16 Jul 2024 19:05:46 +0100
Subject: [PATCH] io_uring: fix lost getsockopt completions

There is a report that iowq executed getsockopt never completes. The
reason being that io_uring_cmd_sock() can return a positive result, and
io_uring_cmd() propagates it back to core io_uring, instead of IOU_OK.
In case of io_wq_submit_work(), the request will be dropped without
completing it.

The offending code was introduced by a hack in
a9c3eda7eada9 ("io_uring: fix submission-failure handling for uring-cmd"),
however it was fine until getsockopt was introduced and started
returning positive results.

The right solution is to always return IOU_OK, since
e0b23d9953b0c ("io_uring: optimise ltimeout for inline execution"),
we should be able to do it without problems, however for the sake of
backporting and minimising side effects, let's keep returning negative
return codes and otherwise do IOU_OK.

Link: https://github.com/axboe/liburing/issues/1181
Cc: stable@vger.kernel.org
Fixes: 8e9fad0e70b7b ("io_uring: Add io_uring command support for sockets")
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Reviewed-by: Breno Leitao <leitao@debian.org>
Link: https://lore.kernel.org/r/ff349cf0654018189b6077e85feed935f0f8839e.1721149870.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>

diff --git a/io_uring/uring_cmd.c b/io_uring/uring_cmd.c
index 21ac5fb2d5f0..a54163a83968 100644
--- a/io_uring/uring_cmd.c
+++ b/io_uring/uring_cmd.c
@@ -265,7 +265,7 @@ int io_uring_cmd(struct io_kiocb *req, unsigned int issue_flags)
 		req_set_fail(req);
 	io_req_uring_cleanup(req, issue_flags);
 	io_req_set_res(req, ret, 0);
-	return ret;
+	return ret < 0 ? ret : IOU_OK;
 }
 
 int io_uring_cmd_import_fixed(u64 ubuf, unsigned long len, int rw,


             reply	other threads:[~2024-07-29 10:13 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-29 10:13 gregkh [this message]
2024-07-29 17:38 ` FAILED: patch "[PATCH] io_uring: fix lost getsockopt completions" failed to apply to 6.6-stable tree Jens Axboe
2024-07-29 17:44   ` Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2024072931-sarcastic-coagulant-6821@gregkh \
    --to=gregkh@linuxfoundation.org \
    --cc=asml.silence@gmail.com \
    --cc=axboe@kernel.dk \
    --cc=leitao@debian.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox