dma-mapping: add (back) arch_dma_mark_clean for ia64
Add back a hook to optimize dcache flushing after reading executable code using DMA. This gets ia64 out of the business of pretending to be dma incoherent just for this optimization. Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
@@ -44,6 +44,12 @@ config ARCH_HAS_DMA_SET_MASK
|
||||
config ARCH_HAS_DMA_WRITE_COMBINE
|
||||
bool
|
||||
|
||||
#
|
||||
# Select if the architectures provides the arch_dma_mark_clean hook
|
||||
#
|
||||
config ARCH_HAS_DMA_MARK_CLEAN
|
||||
bool
|
||||
|
||||
config DMA_DECLARE_COHERENT
|
||||
bool
|
||||
|
||||
|
||||
@@ -345,6 +345,9 @@ void dma_direct_sync_sg_for_cpu(struct device *dev,
|
||||
if (unlikely(is_swiotlb_buffer(paddr)))
|
||||
swiotlb_tbl_sync_single(dev, paddr, sg->length, dir,
|
||||
SYNC_FOR_CPU);
|
||||
|
||||
if (dir == DMA_FROM_DEVICE)
|
||||
arch_dma_mark_clean(paddr, sg->length);
|
||||
}
|
||||
|
||||
if (!dev_is_dma_coherent(dev))
|
||||
|
||||
Reference in New Issue
Block a user