diff options
author | Christoph Hellwig <hch@lst.de> | 2025-07-07 14:52:23 +0200 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2025-07-08 06:54:52 -0600 |
commit | b8b7570a7ec872f2a27b775c4f8710ca8a357adf (patch) | |
tree | 19a061a422e67c997842edb3c746d2e465e32440 /scripts/lib/kdoc/kdoc_output.py | |
parent | 1cea5180f2f812c444ceebdc40f5d001bedd030d (diff) |
nvme-pci: fix dma unmapping when using PRPs and not using the IOVA mapping
The current version of the blk_rq_dma_map support in nvme-pci tries to
reconstruct the DMA mappings from the on the wire descriptors if they
are needed for unmapping. While this is not the case for the direct
mapping fast path and the IOVA path, it is needed for the non-IOVA slow
path, e.g. when using the interconnect is not dma coherent, when using
swiotlb bounce buffering, or a IOMMU mapping that can't coalesce.
While the reconstruction is easy and works fine for the SGL path, where
the on the wire representation maps 1:1 to DMA mappings, the code to
reconstruct the DMA mapping ranges from PRPs can't always work, as a
given PRP layout can come from different DMA mappings, and the current
code doesn't even always get that right.
Give up on this approach and track the actual DMA mapping when actually
needed again.
Fixes: 7ce3c1dd78fc ("nvme-pci: convert the data mapping to blk_rq_dma_map")
Reported-by: Ben Copeland <ben.copeland@linaro.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Keith Busch <kbusch@kernel.org>
Tested-by: Jens Axboe <axboe@kernel.dk>
Link: https://lore.kernel.org/r/20250707125223.3022531-1-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'scripts/lib/kdoc/kdoc_output.py')
0 files changed, 0 insertions, 0 deletions