From be0c00efdc6efc4029f783b312d24497a2712e5c Mon Sep 17 00:00:00 2001 From: Simon Xue Date: Wed, 15 Jun 2022 09:01:43 +0800 Subject: [PATCH] media: common: videobuf2: fix begin_cpu_access and end_cpu_access call back scatterlist nents would change to 1 after dma_map_sg if iommu enabled. So invalid or clean should use orig_nents to indicate the scatterlist true nents if user miss the callback prepare and finish of struct vb2_mem_ops. Change-Id: Iabb4c140d64e79eb16b93cab0fee488fe4ba4b68 Signed-off-by: Simon Xue --- drivers/media/common/videobuf2/videobuf2-cma-sg.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/media/common/videobuf2/videobuf2-cma-sg.c b/drivers/media/common/videobuf2/videobuf2-cma-sg.c index e65e4aa97cb0..bc7b8519d42c 100644 --- a/drivers/media/common/videobuf2/videobuf2-cma-sg.c +++ b/drivers/media/common/videobuf2/videobuf2-cma-sg.c @@ -501,7 +501,7 @@ vb2_cma_sg_dmabuf_ops_begin_cpu_access(struct dma_buf *dbuf, struct vb2_cma_sg_buf *buf = dbuf->priv; struct sg_table *sgt = buf->dma_sgt; - dma_sync_sg_for_cpu(buf->dev, sgt->sgl, sgt->nents, buf->dma_dir); + dma_sync_sgtable_for_cpu(buf->dev, sgt, buf->dma_dir); return 0; } @@ -512,7 +512,7 @@ vb2_cma_sg_dmabuf_ops_end_cpu_access(struct dma_buf *dbuf, struct vb2_cma_sg_buf *buf = dbuf->priv; struct sg_table *sgt = buf->dma_sgt; - dma_sync_sg_for_device(buf->dev, sgt->sgl, sgt->nents, buf->dma_dir); + dma_sync_sgtable_for_device(buf->dev, sgt, buf->dma_dir); return 0; }