]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
io_uring/poll: fix POLLERR handling
authorPavel Begunkov <asml.silence@gmail.com>
Wed, 16 Jul 2025 16:20:17 +0000 (17:20 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 24 Jul 2025 06:51:48 +0000 (08:51 +0200)
commit283bace0409504e3f60df72eeaef53d014f573ee
treef5d687db18f5e3c338da68cdb6e14a0ce3bf911c
parent7803b28c9aa8d8bd4e19ebcf5f0db9612b0f333b
io_uring/poll: fix POLLERR handling

commit c7cafd5b81cc07fb402e3068d134c21e60ea688c upstream.

8c8492ca64e7 ("io_uring/net: don't retry connect operation on EPOLLERR")
is a little dirty hack that
1) wrongfully assumes that POLLERR equals to a failed request, which
breaks all POLLERR users, e.g. all error queue recv interfaces.
2) deviates the connection request behaviour from connect(2), and
3) racy and solved at a wrong level.

Nothing can be done with 2) now, and 3) is beyond the scope of the
patch. At least solve 1) by moving the hack out of generic poll handling
into io_connect().

Cc: stable@vger.kernel.org
Fixes: 8c8492ca64e79 ("io_uring/net: don't retry connect operation on EPOLLERR")
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/3dc89036388d602ebd84c28e5042e457bdfc952b.1752682444.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
io_uring/net.c
io_uring/poll.c