eventpoll: add EPOLL_URING_WAKE poll wakeup flag
authorJens Axboe <axboe@kernel.dk>
Sun, 20 Nov 2022 17:10:53 +0000 (10:10 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 24 Jan 2023 06:22:43 +0000 (07:22 +0100)
commita2d8ff00a7b0c98225dad7fdf162c8a7134b81b9
treefccec791923c869ae9acb226eb2baaa45adc1b6d
parenta9aa4aa7a5b293b8dae8add6abd4dcf37b1789eb
eventpoll: add EPOLL_URING_WAKE poll wakeup flag

[ Upstream commit caf1aeaffc3b09649a56769e559333ae2c4f1802 ]

We can have dependencies between epoll and io_uring. Consider an epoll
context, identified by the epfd file descriptor, and an io_uring file
descriptor identified by iofd. If we add iofd to the epfd context, and
arm a multishot poll request for epfd with iofd, then the multishot
poll request will repeatedly trigger and generate events until terminated
by CQ ring overflow. This isn't a desired behavior.

Add EPOLL_URING so that io_uring can pass it in as part of the poll wakeup
key, and io_uring can check for that to detect a potential recursive
invocation.

Cc: stable@vger.kernel.org # 6.0
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/eventpoll.c
include/uapi/linux/eventpoll.h