• Logan Gunthorpe's avatar
    PCI/P2PDMA: Introduce helpers for dma_map_sg implementations · 5e180ff3
    Logan Gunthorpe authored
    Add pci_p2pdma_map_segment() as a helper for dma_map_sg()
    implementations. It takes an scatterlist segment that must point to a
    pci_p2pdma struct page and will map it if the mapping requires a bus
    address.
    
    The return value indicates whether the mapping required a bus address
    or whether the caller still needs to map the segment normally. If the
    segment should not be mapped, -EREMOTEIO is returned.
    
    This helper uses a state structure to track the changes to the
    pgmap across calls and avoid needing to lookup into the xarray for
    every page.
    
    The prototype for the helper is added to dma-map-ops.h as it is only
    useful to dma map implementations and don't need to pollute the public
    pci-p2pdma header.
    Signed-off-by: default avatarLogan Gunthorpe <logang@deltatee.com>
    Acked-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    5e180ff3
p2pdma.c 27.7 KB