diff options
author | Pavel Begunkov <asml.silence@gmail.com> | 2025-02-24 12:42:21 +0000 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2025-02-24 07:34:21 -0700 |
commit | 82d187d356dcc257ecaa659e57e6c0546ec1cd2d (patch) | |
tree | b3b0b0c2bcb4e83b924189098bd2e3a9465dec3a /io_uring/rw.c | |
parent | 0bba6fccbdcb28d284debc31150f84ef14f7e252 (diff) |
io_uring/rw: compile out compat param passing
Even when COMPAT is compiled out, we still have to pass
ctx->compat to __import_iovec(). Replace the read with an indirection
with a constant when the kernel doesn't support compat.
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Reviewed-by: Anuj Gupta <anuj20.g@samsung.com>
Link: https://lore.kernel.org/r/2819df9c8533c36b46d7baccbb317a0ec89da6cd.1740400452.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'io_uring/rw.c')
-rw-r--r-- | io_uring/rw.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/io_uring/rw.c b/io_uring/rw.c index 16f12f94943f..7133029b4396 100644 --- a/io_uring/rw.c +++ b/io_uring/rw.c @@ -46,7 +46,6 @@ static bool io_file_supports_nowait(struct io_kiocb *req, __poll_t mask) return false; } -#ifdef CONFIG_COMPAT static int io_iov_compat_buffer_select_prep(struct io_rw *rw) { struct compat_iovec __user *uiov; @@ -63,7 +62,6 @@ static int io_iov_compat_buffer_select_prep(struct io_rw *rw) rw->len = clen; return 0; } -#endif static int io_iov_buffer_select_prep(struct io_kiocb *req) { @@ -74,10 +72,8 @@ static int io_iov_buffer_select_prep(struct io_kiocb *req) if (rw->len != 1) return -EINVAL; -#ifdef CONFIG_COMPAT - if (req->ctx->compat) + if (io_is_compat(req->ctx)) return io_iov_compat_buffer_select_prep(rw); -#endif uiov = u64_to_user_ptr(rw->addr); if (copy_from_user(&iov, uiov, sizeof(*uiov))) @@ -120,7 +116,7 @@ static int __io_import_iovec(int ddir, struct io_kiocb *req, nr_segs = 1; } ret = __import_iovec(ddir, buf, sqe_len, nr_segs, &iov, &io->iter, - req->ctx->compat); + io_is_compat(req->ctx)); if (unlikely(ret < 0)) return ret; if (iov) { |