Re: refactor dma_cache_sync V2
On Mon, Oct 16, 2017 at 02:44:42PM +0200, Christoph Hellwig wrote: > On Tue, Oct 03, 2017 at 12:49:51PM +0100, Robin Murphy wrote: > > Reviewed-by: Robin Murphy> > Thanks Robin. I've heard very little from the arch maintainers, > but if people remain silent I will apply the whole series to the > dma-mapping tree in the next days. Applied to the dma-mapping tree for 4.15.
Re: refactor dma_cache_sync V2
On Tue, Oct 03, 2017 at 12:49:51PM +0100, Robin Murphy wrote: > Reviewed-by: Robin MurphyThanks Robin. I've heard very little from the arch maintainers, but if people remain silent I will apply the whole series to the dma-mapping tree in the next days.
Re: refactor dma_cache_sync V2
On 03/10/17 11:43, Christoph Hellwig wrote: > The dma_cache_sync routines is used to flush caches for memory returned > by dma_alloc_attrs with the DMA_ATTR_NON_CONSISTENT flag (or previously > from dma_alloc_noncoherent), but the requirements for it seems to be > frequently misunderstood. dma_cache_sync is documented to be a no-op for > allocations that do not have the DMA_ATTR_NON_CONSISTENT flag set, and > yet a lot of architectures implement it in some way despite not > implementing DMA_ATTR_NON_CONSISTENT. > > This series removes a few abuses of dma_cache_sync for non-DMA API > purposes, then changes all remaining architectures that do not implement > DMA_ATTR_NON_CONSISTENT to implement dma_cache_sync as a no-op, and > then adds the struct dma_map_ops indirection we use for all other > DMA mapping operations to dma_cache_sync as well, thus removing all but > two implementations of the function. > > Changes since V1: > - drop the mips fd_cacheflush, merged via maintainer > - spelling fix in last commit descriptions (thanks Geert) > For the series, Reviewed-by: Robin MurphyThe MIPS DMA ops are a little fiddly, but I've satisfied myself that CONFIG_DMA_NONCOHERENT and CONFIG_SWIOTLB are mutually exclusive for Loongson64 such that patch #11 isn't missing anything. Robin.
refactor dma_cache_sync V2
The dma_cache_sync routines is used to flush caches for memory returned by dma_alloc_attrs with the DMA_ATTR_NON_CONSISTENT flag (or previously from dma_alloc_noncoherent), but the requirements for it seems to be frequently misunderstood. dma_cache_sync is documented to be a no-op for allocations that do not have the DMA_ATTR_NON_CONSISTENT flag set, and yet a lot of architectures implement it in some way despite not implementing DMA_ATTR_NON_CONSISTENT. This series removes a few abuses of dma_cache_sync for non-DMA API purposes, then changes all remaining architectures that do not implement DMA_ATTR_NON_CONSISTENT to implement dma_cache_sync as a no-op, and then adds the struct dma_map_ops indirection we use for all other DMA mapping operations to dma_cache_sync as well, thus removing all but two implementations of the function. Changes since V1: - drop the mips fd_cacheflush, merged via maintainer - spelling fix in last commit descriptions (thanks Geert)