summaryrefslogtreecommitdiff
path: root/io_uring/net.c
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2025-08-20 20:03:34 -0600
committerJens Axboe <axboe@kernel.dk>2025-08-24 11:41:12 -0600
commitab6559bdbb08f6bee606435cd014fc5ba0f7b750 (patch)
tree209f24bf6727f18ad8475e040c6b37fedc73b108 /io_uring/net.c
parent1b5add75d7c894c62506c9b55f1d9eaadae50ef1 (diff)
io_uring/kbuf: introduce struct io_br_sel
Rather than return addresses directly from buffer selection, add a struct around it. No functional changes in this patch, it's in preparation for storing more buffer related information locally, rather than in struct io_kiocb. Link: https://lore.kernel.org/r/20250821020750.598432-7-axboe@kernel.dk Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'io_uring/net.c')
-rw-r--r--io_uring/net.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/io_uring/net.c b/io_uring/net.c
index 54e13d1b0d0b..12dcc21f2259 100644
--- a/io_uring/net.c
+++ b/io_uring/net.c
@@ -1035,22 +1035,22 @@ int io_recvmsg(struct io_kiocb *req, unsigned int issue_flags)
retry_multishot:
if (io_do_buffer_select(req)) {
- void __user *buf;
+ struct io_br_sel sel;
size_t len = sr->len;
- buf = io_buffer_select(req, &len, sr->buf_group, issue_flags);
- if (!buf)
+ sel = io_buffer_select(req, &len, sr->buf_group, issue_flags);
+ if (!sel.addr)
return -ENOBUFS;
if (req->flags & REQ_F_APOLL_MULTISHOT) {
- ret = io_recvmsg_prep_multishot(kmsg, sr, &buf, &len);
+ ret = io_recvmsg_prep_multishot(kmsg, sr, &sel.addr, &len);
if (ret) {
io_kbuf_recycle(req, req->buf_list, issue_flags);
return ret;
}
}
- iov_iter_ubuf(&kmsg->msg.msg_iter, ITER_DEST, buf, len);
+ iov_iter_ubuf(&kmsg->msg.msg_iter, ITER_DEST, sel.addr, len);
}
kmsg->msg.msg_get_inq = 1;
@@ -1153,13 +1153,13 @@ static int io_recv_buf_select(struct io_kiocb *req, struct io_async_msghdr *kmsg
iov_iter_init(&kmsg->msg.msg_iter, ITER_DEST, arg.iovs, ret,
arg.out_len);
} else {
- void __user *buf;
+ struct io_br_sel sel;
*len = sr->len;
- buf = io_buffer_select(req, len, sr->buf_group, issue_flags);
- if (!buf)
+ sel = io_buffer_select(req, len, sr->buf_group, issue_flags);
+ if (!sel.addr)
return -ENOBUFS;
- sr->buf = buf;
+ sr->buf = sel.addr;
sr->len = *len;
map_ubuf:
ret = import_ubuf(ITER_DEST, sr->buf, sr->len,