Revert "io_uring: disallow self-propelled ring polling"
authorJens Axboe <axboe@kernel.dk>
Sun, 20 Nov 2022 17:20:46 +0000 (10:20 -0700)
committerJens Axboe <axboe@kernel.dk>
Tue, 22 Nov 2022 13:08:31 +0000 (06:08 -0700)
This reverts commit 7fdbc5f014c3f71bc44673a2d6c5bb2d12d45f25.

This patch dealt with a subset of the real problem, which is a potential
circular dependency on the wakup path for io_uring itself. Outside of
io_uring, eventfd can also trigger this (see details in 03e02acda8e2)
and so can epoll (see details in caf1aeaffc3b). Now that we have a
generic solution to this problem, get rid of the io_uring specific
work-around.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/poll.c

index 22c9b2e..cd4d98d 100644 (file)
@@ -246,8 +246,6 @@ static int io_poll_check_events(struct io_kiocb *req, bool *locked)
                        continue;
                if (req->apoll_events & EPOLLONESHOT)
                        return IOU_POLL_DONE;
-               if (io_is_uring_fops(req->file))
-                       return IOU_POLL_DONE;
 
                /* multishot, just fill a CQE and proceed */
                if (!(req->flags & REQ_F_APOLL_MULTISHOT)) {