linux-stable/io_uring
Pavel Begunkov 067bcd807e io_uring: disallow self-propelled ring polling
commit 7fdbc5f014 upstream.

When we post a CQE we wake all ring pollers as it normally should be.
However, if a CQE was generated by a multishot poll request targeting
its own ring, it'll wake that request up, which will make it to post
a new CQE, which will wake the request and so on until it exhausts all
CQ entries.

Don't allow multishot polling io_uring files but downgrade them to
oneshots, which was always stated as a correct behaviour that the
userspace should check for.

Cc: stable@vger.kernel.org
Fixes: aa43477b04 ("io_uring: poll rework")
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/3124038c0e7474d427538c2d915335ec28c92d21.1668785722.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-11-26 09:27:49 +01:00
..
advise.c io_uring: make io_kiocb_to_cmd() typesafe 2022-08-12 17:01:00 -06:00
advise.h
alloc_cache.h
cancel.c io_uring: fix off-by-one in sync cancelation file check 2022-08-23 07:26:08 -06:00
cancel.h
epoll.c io_uring: make io_kiocb_to_cmd() typesafe 2022-08-12 17:01:00 -06:00
epoll.h
fdinfo.c io_uring: fix fdinfo sqe offsets calculation 2022-10-21 12:39:29 +02:00
fdinfo.h
filetable.c
filetable.h
fs.c io_uring: make io_kiocb_to_cmd() typesafe 2022-08-12 17:01:00 -06:00
fs.h
io-wq.c io-wq: Fix memory leak in worker creation 2022-10-26 12:22:57 +02:00
io-wq.h
io_uring.c io_uring: fix multishot accept request leaks 2022-11-26 09:27:49 +01:00
io_uring.h io_uring: fix multishot accept request leaks 2022-11-26 09:27:49 +01:00
kbuf.c io_uring: check for rollover of buffer ID when providing buffers 2022-11-16 10:04:09 +01:00
kbuf.h io_uring/kbuf: fix not advancing READV kbuf ring 2022-09-07 10:36:10 -06:00
Makefile
msg_ring.c io_uring/msg_ring: Fix NULL pointer dereference in io_msg_send_fd() 2022-10-29 10:08:35 +02:00
msg_ring.h
net.c io_uring: fix multishot recv request leaks 2022-11-26 09:27:49 +01:00
net.h io_uring/net: rename io_sendzc() 2022-10-21 12:39:27 +02:00
nop.c
nop.h
notif.c io_uring/notif: Remove the unused function io_notif_complete() 2022-09-05 11:42:39 -06:00
notif.h io_uring/net: simplify zerocopy send user API 2022-09-01 09:13:33 -06:00
opdef.c io_uring/net: rename io_sendzc() 2022-10-21 12:39:27 +02:00
opdef.h io_uring: add custom opcode hooks on fail 2022-10-21 12:37:32 +02:00
openclose.c io_uring: make io_kiocb_to_cmd() typesafe 2022-08-12 17:01:00 -06:00
openclose.h
poll.c io_uring: disallow self-propelled ring polling 2022-11-26 09:27:49 +01:00
poll.h
refs.h
rsrc.c io_uring/af_unix: defer registered files gc to io_uring release 2022-10-21 12:37:33 +02:00
rsrc.h Revert "io_uring: rename IORING_OP_FILES_UPDATE" 2022-09-01 09:13:33 -06:00
rw.c io_uring/rw: remove leftover debug statement 2022-10-29 10:08:33 +02:00
rw.h io_uring/rw: don't lose partial IO result on fail 2022-10-21 12:37:32 +02:00
slist.h
splice.c io_uring: make io_kiocb_to_cmd() typesafe 2022-08-12 17:01:00 -06:00
splice.h
sqpoll.c
sqpoll.h
statx.c io_uring: make io_kiocb_to_cmd() typesafe 2022-08-12 17:01:00 -06:00
statx.h
sync.c io_uring: make io_kiocb_to_cmd() typesafe 2022-08-12 17:01:00 -06:00
sync.h
tctx.c
tctx.h
timeout.c io_uring: make io_kiocb_to_cmd() typesafe 2022-08-12 17:01:00 -06:00
timeout.h
uring_cmd.c lsm/stable-6.0 PR 20220829 2022-08-31 09:23:16 -07:00
uring_cmd.h
xattr.c io_uring: make io_kiocb_to_cmd() typesafe 2022-08-12 17:01:00 -06:00
xattr.h