Thread (3 messages) 3 messages, 2 authors, 2021-08-02

Re: FAILED: patch "[PATCH] io_uring: fix race in unified task_work running" failed to apply to 5.13-stable tree

From: Greg KH <gregkh@linuxfoundation.org>
Date: 2021-08-02 11:37:31

On Sat, Jul 31, 2021 at 08:44:33AM -0600, Jens Axboe wrote:
On 7/31/21 12:43 AM, gregkh@linuxfoundation.org wrote:
quoted
The patch below does not apply to the 5.13-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 [off-list ref].
Here's a tested 5.13-stable port.

From: Jens Axboe <axboe@kernel.dk>
Subject: io_uring: fix race in unified task_work running

commit 110aa25c3ce417a44e35990cf8ed22383277933a upstream.

We use a bit to manage if we need to add the shared task_work, but
a list + lock for the pending work. Before aborting a current run
of the task_work we check if the list is empty, but we do so without
grabbing the lock that protects it. This can lead to races where
we think we have nothing left to run, where in practice we could be
racing with a task adding new work to the list. If we do hit that
race condition, we could be left with work items that need processing,
but the shared task_work is not active.

Ensure that we grab the lock before checking if the list is empty,
so we know if it's safe to exit the run or not.

Link: https://lore.kernel.org/io-uring/c6bd5987-e9ae-cd02-49d0-1b3ac1ef65b1@tnonline.net/ (local)
Cc: stable@vger.kernel.org # 5.11+
Reported-by: Forza <redacted>
Tested-by: Forza <redacted>
Now queued up, thanks!

greg k-h
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help