diff --git a/repos/dde_linux/src/lib/lx_emul/shadow/kernel/dma/mapping.c b/repos/dde_linux/src/lib/lx_emul/shadow/kernel/dma/mapping.c index 6caed93c10..a2ba1120fa 100644 --- a/repos/dde_linux/src/lib/lx_emul/shadow/kernel/dma/mapping.c +++ b/repos/dde_linux/src/lib/lx_emul/shadow/kernel/dma/mapping.c @@ -100,6 +100,9 @@ void dma_unmap_sg_attrs(struct device * dev, int i; struct scatterlist *sg; + if (dir != DMA_FROM_DEVICE) + return; + for_each_sg(sgl, sg, nents, i) { lx_emul_mem_cache_invalidate(page_address(sg_page(sg)) + sg->offset, sg->length);