On Thu, Mar 29, 2018 at 11:33:34PM -0700, Christoph Hellwig wrote: > On Thu, Mar 29, 2018 at 09:58:54PM -0400, Jerome Glisse wrote: > > dma_map_resource() is the right API (thought its current implementation > > is fill with x86 assumptions). So i would argue that arch can decide to > > implement it or simply return dma error address which trigger fallback > > path into the caller (at least for GPU drivers). SG variant can be added > > on top. > > It isn't in general. It doesn't integrate with scatterlists (see my > comment to page one), and it doesn't integrate with all the subsystems > that also need a kernel virtual address. IIRC SG variant was proposed at the time dma_map_resource() was added, dunno why they did not make it (again from memory i think it was because it grows the scatterlist struct size). My point is more than people that need SG variant should work on adding it. People who do not, should not be stop by the lack of it. There is something there upstream, it does not make sense to not use it. The dma-buf infrastructure is useful to many drivers. If you do not want to share the underlying logic of dma_map_resource() fine (ie not sharing code inside drivers/iommu/*). I thought it would be a good thing to share code ... Cheers, Jérôme