Re: [PATCH] dma-direct: Export dma_direct_alloc() and dma_direct_free()

From: Christoph Hellwig
Date: Tue Feb 05 2019 - 11:38:40 EST


On Tue, Feb 05, 2019 at 05:20:57PM +0100, Thierry Reding wrote:
> The problem is that if I use dma_alloc_coherent(), then the memory will
> already be mapped via the SMMU at that point and then the driver, not
> knowing that memory has already been mapped, will attempt to map an IOVA
> which will cause an SMMU fault when the host1x tries to access the
> memory.
>
> I didn't find an equivalent to arm_iommu_detach_device() for non-ARM,
> but then stumbled across this and thought it was rather convenient for
> these cases. If there's a better way to deal with this situation, I'd be
> happy to do so.

So you basically do a dma_direct_alloc + iommu_map? Can you send me
a pointer to your code? Maybe we need to add a proper IOMMU-layer
API for that.