linux/io_uring
Pavel Begunkov 581711c466 io_uring/net: save address for sendzc async execution
We usually copy all bits that a request needs from the userspace for
async execution, so the userspace can keep them on the stack. However,
send zerocopy violates this pattern for addresses and may reloads it
e.g. from io-wq. Save the address if any in ->async_data as usual.

Reported-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/d7512d7aa9abcd36e9afe1a4d292a24cb2d157e5.1661342812.git.asml.silence@gmail.com
[axboe: fold in incremental fix]
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-08-25 07:52:30 -06:00
..
Makefile io_uring: add zc notification infrastructure 2022-07-24 18:41:06 -06:00
advise.c io_uring: make io_kiocb_to_cmd() typesafe 2022-08-12 17:01:00 -06:00
advise.h
alloc_cache.h io_uring: impose max limit on apoll cache 2022-07-24 18:39:17 -06:00
cancel.c io_uring: fix off-by-one in sync cancelation file check 2022-08-23 07:26:08 -06:00
cancel.h io_uring: add sync cancelation API through io_uring_register() 2022-07-24 18:39:15 -06:00
epoll.c io_uring: make io_kiocb_to_cmd() typesafe 2022-08-12 17:01:00 -06:00
epoll.h
fdinfo.c io_uring: move a few private types to local headers 2022-07-24 18:39:14 -06:00
fdinfo.h io_uring: move fdinfo helpers to its own file 2022-07-24 18:39:12 -06:00
filetable.c io_uring: let to set a range for file slot allocation 2022-07-24 18:39:16 -06:00
filetable.h io_uring: let to set a range for file slot allocation 2022-07-24 18:39:16 -06:00
fs.c io_uring: make io_kiocb_to_cmd() typesafe 2022-08-12 17:01:00 -06:00
fs.h
io-wq.c audit, io_uring, io-wq: Fix memory leak in io_sq_thread() and io_wqe_worker() 2022-08-04 08:33:54 -06:00
io-wq.h io_uring: move list helpers to a separate file 2022-07-24 18:39:15 -06:00
io_uring.c io_uring: conditional ->async_data allocation 2022-08-24 08:57:28 -06:00
io_uring.h io_uring: export req alloc from core 2022-07-27 08:50:50 -06:00
kbuf.c io_uring: make io_kiocb_to_cmd() typesafe 2022-08-12 17:01:00 -06:00
kbuf.h io_uring: restore bgid in io_put_kbuf 2022-07-24 18:39:16 -06:00
msg_ring.c io_uring: make io_kiocb_to_cmd() typesafe 2022-08-12 17:01:00 -06:00
msg_ring.h
net.c io_uring/net: save address for sendzc async execution 2022-08-25 07:52:30 -06:00
net.h io_uring/net: save address for sendzc async execution 2022-08-25 07:52:30 -06:00
nop.c io_uring: kill extra io_uring_types.h includes 2022-07-24 18:39:14 -06:00
nop.h
notif.c io_uring/notif: order notif vs send CQEs 2022-08-24 08:57:28 -06:00
notif.h io_uring/notif: raise limit on notification slots 2022-08-15 21:34:00 -06:00
opdef.c io_uring/net: save address for sendzc async execution 2022-08-25 07:52:30 -06:00
opdef.h io_uring: conditional ->async_data allocation 2022-08-24 08:57:28 -06:00
openclose.c io_uring: make io_kiocb_to_cmd() typesafe 2022-08-12 17:01:00 -06:00
openclose.h io_uring: split out fixed file installation and removal 2022-07-24 18:39:16 -06:00
poll.c io_uring: make io_kiocb_to_cmd() typesafe 2022-08-12 17:01:00 -06:00
poll.h io_uring: add abstraction around apoll cache 2022-07-24 18:39:17 -06:00
refs.h io_uring: make io_uring_types.h public 2022-07-24 18:39:14 -06:00
rsrc.c io_uring: make io_kiocb_to_cmd() typesafe 2022-08-12 17:01:00 -06:00
rsrc.h io_uring/net: make page accounting more consistent 2022-07-25 09:48:25 -06:00
rw.c io_uring-6.0-2022-08-13 2022-08-13 13:28:54 -07:00
rw.h io_uring: move read/write related opcodes to its own file 2022-07-24 18:39:12 -06:00
slist.h io_uring: move list helpers to a separate file 2022-07-24 18:39:15 -06:00
splice.c io_uring: make io_kiocb_to_cmd() typesafe 2022-08-12 17:01:00 -06:00
splice.h
sqpoll.c audit, io_uring, io-wq: Fix memory leak in io_sq_thread() and io_wqe_worker() 2022-08-04 08:33:54 -06:00
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 io_uring: lockless task list 2022-07-24 18:39:15 -06:00
tctx.h io_uring: export io_put_task() 2022-07-24 18:41:06 -06:00
timeout.c io_uring: make io_kiocb_to_cmd() typesafe 2022-08-12 17:01:00 -06:00
timeout.h io_uring: move a few private types to local headers 2022-07-24 18:39:14 -06:00
uring_cmd.c io_uring: fix submission-failure handling for uring-cmd 2022-08-23 09:46:17 -06:00
uring_cmd.h
xattr.c io_uring: make io_kiocb_to_cmd() typesafe 2022-08-12 17:01:00 -06:00
xattr.h