mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
blk-mq-dma: initialize the dma state for P2P, too
blk_rq_dma_map_iter_start() promises that the caller need not initialize
the dma_iova_state, but the P2P bus address path returns before it does
so. The state then holds what the last request with that tag left, and
blk_rq_dma_map_coalesce() describes a transfer as one IOVA range that it
isn't. Clear it on that path too.
Fixes: 858299dc61 ("block: add scatterlist-less DMA mapping helpers")
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Link: https://patch.msgid.link/20261028164415.1262013-33-axboe@kernel.dk
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
0db9f8968a
commit
035236c9e1
|
|
@ -181,6 +181,8 @@ static bool blk_dma_map_iter_start(struct request *req, struct device *dma_dev,
|
|||
switch (pci_p2pdma_state(&iter->p2pdma, dma_dev,
|
||||
phys_to_page(vec.paddr))) {
|
||||
case PCI_P2PDMA_MAP_BUS_ADDR:
|
||||
/* don't leave the state of an earlier mapping to the caller */
|
||||
memset(state, 0, sizeof(*state));
|
||||
return blk_dma_map_bus(iter, &vec);
|
||||
case PCI_P2PDMA_MAP_THRU_HOST_BRIDGE:
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user