linux/io_uring
Jens Axboe 561e4f9451 io_uring/kbuf: hold io_buffer_list reference over mmap
If we look up the kbuf, ensure that it doesn't get unregistered until
after we're done with it. Since we're inside mmap, we cannot safely use
the io_uring lock. Rely on the fact that we can lookup the buffer list
under RCU now and grab a reference to it, preventing it from being
unregistered until we're done with it. The lookup returns the
io_buffer_list directly with it referenced.

Cc: stable@vger.kernel.org # v6.4+
Fixes: 5cf4f52e6d ("io_uring: free io_buffer_list entries via RCU")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2024-04-02 19:03:27 -06:00
..
advise.c
advise.h
alloc_cache.h
cancel.c io_uring/cancel: don't default to setting req->work.cancel_seq 2024-02-08 13:27:06 -07:00
cancel.h io_uring/cancel: don't default to setting req->work.cancel_seq 2024-02-08 13:27:06 -07:00
epoll.c
epoll.h
fdinfo.c io_uring: Fix sqpoll utilization check racing with dying sqpoll 2024-03-09 07:27:09 -07:00
fdinfo.h
filetable.c
filetable.h io_uring: expand main struct io_kiocb flags to 64-bits 2024-02-08 13:27:03 -07:00
fs.c
fs.h
futex.c io_uring/futex: always remove futex entry for cancel all 2024-03-15 15:37:15 -06:00
futex.h
io-wq.c
io-wq.h
io_uring.c io_uring/kbuf: hold io_buffer_list reference over mmap 2024-04-02 19:03:27 -06:00
io_uring.h io_uring/napi: ensure napi polling is aborted when work is available 2024-02-14 13:01:25 -07:00
kbuf.c io_uring/kbuf: hold io_buffer_list reference over mmap 2024-04-02 19:03:27 -06:00
kbuf.h io_uring/kbuf: hold io_buffer_list reference over mmap 2024-04-02 19:03:27 -06:00
Makefile io-uring: add napi busy poll support 2024-02-09 11:54:19 -07:00
msg_ring.c
msg_ring.h
napi.c io_uring/napi: enable even with a timeout of 0 2024-02-15 15:37:28 -07:00
napi.h io_uring: add register/unregister napi function 2024-02-09 11:54:32 -07:00
net.c io_uring/net: ensure async prep handlers always initialize ->done_io 2024-03-16 10:33:19 -06:00
net.h
nop.c
nop.h
notif.c
notif.h
opdef.c io_uring: add support for ftruncate 2024-02-09 09:04:39 -07:00
opdef.h
openclose.c io_uring: enable audit and restrict cred override for IORING_OP_FIXED_FD_INSTALL 2024-01-23 15:25:14 -07:00
openclose.h
poll.c io_uring: fix poll_remove stalled req completion 2024-03-15 09:36:56 -06:00
poll.h io_uring/rw: ensure poll based multishot read retries appropriately 2024-01-28 20:37:11 -07:00
refs.h
register.c io_uring: add register/unregister napi function 2024-02-09 11:54:32 -07:00
register.h
rsrc.c
rsrc.h io_uring: Don't include af_unix.h. 2024-02-12 19:02:11 -07:00
rw.c io_uring/rw: don't allow multishot reads without NOWAIT support 2024-04-01 11:41:50 -06:00
rw.h
slist.h
splice.c
splice.h
sqpoll.c io_uring/sqpoll: early exit thread if task_context wasn't allocated 2024-03-18 20:22:42 -06:00
sqpoll.h io_uring/sqpoll: statistics of the true utilization of sq threads 2024-03-01 06:28:19 -07:00
statx.c
statx.h
sync.c
sync.h
tctx.c
tctx.h
timeout.c
timeout.h
truncate.c io_uring: add support for ftruncate 2024-02-09 09:04:39 -07:00
truncate.h io_uring: add support for ftruncate 2024-02-09 09:04:39 -07:00
uring_cmd.c io_uring: Don't include af_unix.h. 2024-02-12 19:02:11 -07:00
uring_cmd.h
waitid.c io_uring/waitid: always remove waitid entry for cancel all 2024-03-15 15:42:49 -06:00
waitid.h
xattr.c io_uring: use file_mnt_idmap helper 2024-02-06 19:55:14 -07:00
xattr.h