diff options
| author | Keith Busch <kbusch@kernel.org> | 2025-08-13 18:31:47 +0300 |
|---|---|---|
| committer | Jens Axboe <axboe@kernel.dk> | 2025-08-25 16:44:39 +0300 |
| commit | 92fb75fd14b041038e30bc725ab4c1e625243573 (patch) | |
| tree | 0b055c1d5e24508cd9152d689848bc34964b344b /include | |
| parent | dae75dead2359edd7c55e1964e0edf7d03535b31 (diff) | |
| download | linux-92fb75fd14b041038e30bc725ab4c1e625243573.tar.xz | |
blk-mq-dma: require unmap caller provide p2p map type
In preparing for integrity dma mappings, we can't rely on the request
flag because data and metadata may have different mapping types.
Signed-off-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Kanchan Joshi <joshi.k@samsung.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Link: https://lore.kernel.org/r/20250813153153.3260897-4-kbusch@meta.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/blk-mq-dma.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/include/linux/blk-mq-dma.h b/include/linux/blk-mq-dma.h index e5cb5e46fc92..881880095e0d 100644 --- a/include/linux/blk-mq-dma.h +++ b/include/linux/blk-mq-dma.h @@ -47,14 +47,15 @@ static inline bool blk_rq_dma_map_coalesce(struct dma_iova_state *state) * @dma_dev: device to unmap from * @state: DMA IOVA state * @mapped_len: number of bytes to unmap + * @is_p2p: true if mapped with PCI_P2PDMA_MAP_BUS_ADDR * * Returns %false if the callers need to manually unmap every DMA segment * mapped using @iter or %true if no work is left to be done. */ static inline bool blk_rq_dma_unmap(struct request *req, struct device *dma_dev, - struct dma_iova_state *state, size_t mapped_len) + struct dma_iova_state *state, size_t mapped_len, bool is_p2p) { - if (req->cmd_flags & REQ_P2PDMA) + if (is_p2p) return true; if (dma_use_iova(state)) { |
