aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel/iommu.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc/kernel/iommu.c')
-rw-r--r--arch/sparc/kernel/iommu.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/sparc/kernel/iommu.c b/arch/sparc/kernel/iommu.c
index 852a3291db96..9df997995f6b 100644
--- a/arch/sparc/kernel/iommu.c
+++ b/arch/sparc/kernel/iommu.c
@@ -415,7 +415,7 @@ static void dma_4u_unmap_page(struct device *dev, dma_addr_t bus_addr,
415 ctx = (iopte_val(*base) & IOPTE_CONTEXT) >> 47UL; 415 ctx = (iopte_val(*base) & IOPTE_CONTEXT) >> 47UL;
416 416
417 /* Step 1: Kick data out of streaming buffers if necessary. */ 417 /* Step 1: Kick data out of streaming buffers if necessary. */
418 if (strbuf->strbuf_enabled) 418 if (strbuf->strbuf_enabled && !(attrs & DMA_ATTR_SKIP_CPU_SYNC))
419 strbuf_flush(strbuf, iommu, bus_addr, ctx, 419 strbuf_flush(strbuf, iommu, bus_addr, ctx,
420 npages, direction); 420 npages, direction);
421 421
@@ -640,7 +640,7 @@ static void dma_4u_unmap_sg(struct device *dev, struct scatterlist *sglist,
640 base = iommu->page_table + entry; 640 base = iommu->page_table + entry;
641 641
642 dma_handle &= IO_PAGE_MASK; 642 dma_handle &= IO_PAGE_MASK;
643 if (strbuf->strbuf_enabled) 643 if (strbuf->strbuf_enabled && !(attrs & DMA_ATTR_SKIP_CPU_SYNC))
644 strbuf_flush(strbuf, iommu, dma_handle, ctx, 644 strbuf_flush(strbuf, iommu, dma_handle, ctx,
645 npages, direction); 645 npages, direction);
646 646