]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
blk-mq-dma: create blk_map_iter type
authorKeith Busch <kbusch@kernel.org>
Wed, 13 Aug 2025 15:31:45 +0000 (08:31 -0700)
committerJens Axboe <axboe@kernel.dk>
Mon, 25 Aug 2025 13:44:38 +0000 (07:44 -0600)
The req_iterator happens to have a similar fields to what the dma
iterator needs, but we're not necessarily iterating a request's
bi_io_vec. Create a new type that can be amended for additional future
use.

Signed-off-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Kanchan Joshi <joshi.k@samsung.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Link: https://lore.kernel.org/r/20250813153153.3260897-2-kbusch@meta.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-mq-dma.c
include/linux/blk-mq-dma.h

index ad283017caef2fca62959ca8ff8607f485862917..51e7a0ff045f9a84b2ba7940fc34d2d45abb2b63 100644 (file)
@@ -10,7 +10,7 @@ struct phys_vec {
        u32             len;
 };
 
-static bool blk_map_iter_next(struct request *req, struct req_iterator *iter,
+static bool blk_map_iter_next(struct request *req, struct blk_map_iter *iter,
                              struct phys_vec *vec)
 {
        unsigned int max_size;
@@ -246,7 +246,7 @@ blk_next_sg(struct scatterlist **sg, struct scatterlist *sglist)
 int __blk_rq_map_sg(struct request *rq, struct scatterlist *sglist,
                    struct scatterlist **last_sg)
 {
-       struct req_iterator iter = {
+       struct blk_map_iter iter = {
                .bio    = rq->bio,
        };
        struct phys_vec vec;
index c26a01aeae006460d595e36d5f14eea61a164efd..6a7e3828673d7e3372a1179b88ecc55aa7e89a11 100644 (file)
@@ -5,6 +5,11 @@
 #include <linux/blk-mq.h>
 #include <linux/pci-p2pdma.h>
 
+struct blk_map_iter {
+       struct bvec_iter                iter;
+       struct bio                      *bio;
+};
+
 struct blk_dma_iter {
        /* Output address range for this iteration */
        dma_addr_t                      addr;
@@ -14,7 +19,7 @@ struct blk_dma_iter {
        blk_status_t                    status;
 
        /* Internal to blk_rq_dma_map_iter_* */
-       struct req_iterator             iter;
+       struct blk_map_iter             iter;
        struct pci_p2pdma_map_state     p2pdma;
 };