]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
io_uring: hide caches sqes from drivers
authorPavel Begunkov <asml.silence@gmail.com>
Mon, 31 Mar 2025 07:55:47 +0000 (08:55 +0100)
committerJens Axboe <axboe@kernel.dk>
Mon, 31 Mar 2025 13:08:34 +0000 (07:08 -0600)
There is now an io_uring private part of cmd async_data, move saved sqe
into it. Drivers are accessing it via struct io_uring_cmd::cmd.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/ecbe078dd57acefdbc4366d083327086c0879378.1743357121.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
include/linux/io_uring/cmd.h
io_uring/uring_cmd.c
io_uring/uring_cmd.h

index e6723fa95160255cabf6e298ab01f71a9759e7d3..0634a3de1782942037ffbe4efe810d3d209d95c8 100644 (file)
@@ -21,7 +21,6 @@ struct io_uring_cmd {
 
 struct io_uring_cmd_data {
        void                    *op_data;
-       struct io_uring_sqe     sqes[2];
 };
 
 static inline const void *io_uring_sqe_cmd(const struct io_uring_sqe *sqe)
index f2cfc371f3d0b19f1fcf399eeb749e2855eaed16..89cee2af0ec1952d4df0d25d7a6958ea5d727c5f 100644 (file)
@@ -205,8 +205,8 @@ static int io_uring_cmd_prep_setup(struct io_kiocb *req,
         * that it doesn't read in per-op data, play it safe and ensure that
         * any SQE data is stable beyond prep. This can later get relaxed.
         */
-       memcpy(ac->data.sqes, sqe, uring_sqe_size(req->ctx));
-       ioucmd->sqe = ac->data.sqes;
+       memcpy(ac->sqes, sqe, uring_sqe_size(req->ctx));
+       ioucmd->sqe = ac->sqes;
        return 0;
 }
 
index 14e5252558549ed2b2ee265b59fa51e65f865d7e..b04686b6b5d24950a0998b1791bd37b3cdcc1e84 100644 (file)
@@ -6,6 +6,7 @@
 struct io_async_cmd {
        struct io_uring_cmd_data        data;
        struct iou_vec                  vec;
+       struct io_uring_sqe             sqes[2];
 };
 
 int io_uring_cmd(struct io_kiocb *req, unsigned int issue_flags);