mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 03:24:19 +02:00
blk-mq-dma: create blk_map_iter type
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>
This commit is contained in:
parent
1b237f190e
commit
7a6fc1634c
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user