]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
selftests: ublk: remove `tag` parameter of ->tgt_io_done()
authorMing Lei <ming.lei@redhat.com>
Sun, 13 Jul 2025 14:34:06 +0000 (22:34 +0800)
committerJens Axboe <axboe@kernel.dk>
Tue, 15 Jul 2025 14:04:17 +0000 (08:04 -0600)
The `tag` parameter can be figured out from cqe->user_data, and that is
also the only way to get the info, so remove `tag` parameter, and
let target code retrieve it from cqe->user_data.

Signed-off-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20250713143415.2857561-12-ming.lei@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
tools/testing/selftests/ublk/fault_inject.c
tools/testing/selftests/ublk/file_backed.c
tools/testing/selftests/ublk/kublk.c
tools/testing/selftests/ublk/kublk.h
tools/testing/selftests/ublk/null.c
tools/testing/selftests/ublk/stripe.c

index 6e60f7d9712593403ac5547334c86967f0eab8d3..c980958ec0458c19c196ed32290a8453a1e588ff 100644 (file)
@@ -55,9 +55,10 @@ static int ublk_fault_inject_queue_io(struct ublk_queue *q, int tag)
        return 0;
 }
 
-static void ublk_fault_inject_tgt_io_done(struct ublk_queue *q, int tag,
+static void ublk_fault_inject_tgt_io_done(struct ublk_queue *q,
                                          const struct io_uring_cqe *cqe)
 {
+       unsigned tag = user_data_to_tag(cqe->user_data);
        const struct ublksrv_io_desc *iod = ublk_get_iod(q, tag);
 
        if (cqe->res != -ETIME)
index cfa59b631693793465f0e6909a6fbe1a364f4523..02fb8a411d3b9d7925ee690233ccf9ed1219aedd 100644 (file)
@@ -108,9 +108,10 @@ static int ublk_loop_queue_io(struct ublk_queue *q, int tag)
        return 0;
 }
 
-static void ublk_loop_io_done(struct ublk_queue *q, int tag,
+static void ublk_loop_io_done(struct ublk_queue *q,
                const struct io_uring_cqe *cqe)
 {
+       unsigned tag = user_data_to_tag(cqe->user_data);
        unsigned op = user_data_to_op(cqe->user_data);
        struct ublk_io *io = ublk_get_io(q, tag);
 
index e2d2042810d4bb472e48a0ed91317d2bdf6e2f2a..fba4e80e9bab82c43c030b58f0c08c278c7c540f 100644 (file)
@@ -717,8 +717,6 @@ static int ublk_thread_is_done(struct ublk_thread *t)
 static inline void ublksrv_handle_tgt_cqe(struct ublk_queue *q,
                struct io_uring_cqe *cqe)
 {
-       unsigned tag = user_data_to_tag(cqe->user_data);
-
        if (cqe->res < 0 && cqe->res != -EAGAIN)
                ublk_err("%s: failed tgt io: res %d qid %u tag %u, cmd_op %u\n",
                        __func__, cqe->res, q->q_id,
@@ -726,7 +724,7 @@ static inline void ublksrv_handle_tgt_cqe(struct ublk_queue *q,
                        user_data_to_op(cqe->user_data));
 
        if (q->tgt_ops->tgt_io_done)
-               q->tgt_ops->tgt_io_done(q, tag, cqe);
+               q->tgt_ops->tgt_io_done(q, cqe);
 }
 
 static void ublk_handle_cqe(struct ublk_thread *t,
index 6be601536b3d2c095654da5fba0cf13a51142052..d7b711e6382280b22af0c03a01f0e821bcece3c5 100644 (file)
@@ -145,8 +145,7 @@ struct ublk_tgt_ops {
        void (*deinit_tgt)(struct ublk_dev *);
 
        int (*queue_io)(struct ublk_queue *, int tag);
-       void (*tgt_io_done)(struct ublk_queue *,
-                       int tag, const struct io_uring_cqe *);
+       void (*tgt_io_done)(struct ublk_queue *, const struct io_uring_cqe *);
 
        /*
         * Target specific command line handling
index afe0b99d77eec74acae04952a9af5348252bc599..ea3da53437e99475f516d3f053a328c53d2ea828 100644 (file)
@@ -87,9 +87,10 @@ static int null_queue_auto_zc_io(struct ublk_queue *q, int tag)
        return 1;
 }
 
-static void ublk_null_io_done(struct ublk_queue *q, int tag,
+static void ublk_null_io_done(struct ublk_queue *q,
                const struct io_uring_cqe *cqe)
 {
+       unsigned tag = user_data_to_tag(cqe->user_data);
        unsigned op = user_data_to_op(cqe->user_data);
        struct ublk_io *io = ublk_get_io(q, tag);
 
index 37d50bbf5f5e86a520efedc9228510f8e1273625..53cefffaf32e017e4876b6390f6b71660042b0e2 100644 (file)
@@ -226,9 +226,10 @@ static int ublk_stripe_queue_io(struct ublk_queue *q, int tag)
        return 0;
 }
 
-static void ublk_stripe_io_done(struct ublk_queue *q, int tag,
+static void ublk_stripe_io_done(struct ublk_queue *q,
                const struct io_uring_cqe *cqe)
 {
+       unsigned tag = user_data_to_tag(cqe->user_data);
        const struct ublksrv_io_desc *iod = ublk_get_iod(q, tag);
        unsigned op = user_data_to_op(cqe->user_data);
        struct ublk_io *io = ublk_get_io(q, tag);