mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 01:55:51 +02:00
iommu/dma-iommu: Fix wrong scatterlist length assignment in P2PDMA path
In iommu_dma_map_sg(), when handling PCI P2PDMA cases, the DMA length
of the current scatterlist segment `s` is incorrectly assigned from the
head entry `sg->length` instead of the current entry `s->length`.
This typo causes all P2PDMA segments in the scatterlist to inherit the
length of the first segment, leading to corrupted DMA lengths for multi-
segment scatterlists.
Fix this by using `s->length` instead of `sg->length`.
Fixes: a25e7962db ("PCI/P2PDMA: Refactor the p2pdma mapping helpers")
Signed-off-by: Li RongQing <lirongqing@baidu.com>
Reviewed-by: Logan Gunthorpe <logang@deltatee.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
This commit is contained in:
parent
5ff98a0da6
commit
db50fb8701
|
|
@ -1465,7 +1465,7 @@ int iommu_dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
|
|||
*/
|
||||
s->dma_address = pci_p2pdma_bus_addr_map(
|
||||
p2pdma_state.mem, sg_phys(s));
|
||||
sg_dma_len(s) = sg->length;
|
||||
sg_dma_len(s) = s->length;
|
||||
sg_dma_mark_bus_address(s);
|
||||
continue;
|
||||
default:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user