On Mon, Jul 07, 2025 at 02:52:23PM +0200, Christoph Hellwig wrote: > 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. Looks good. Reviewed-by: Keith Busch <kbusch@xxxxxxxxxx>