Commit afe38284 authored by Marek Szyprowski's avatar Marek Szyprowski Committed by Christian König
Browse files

udmabuf: use sgtable-based scatterlist wrappers



Use common wrappers operating directly on the struct sg_table objects to
fix incorrect use of scatterlists sync calls. dma_sync_sg_for_*()
functions have to be called with the number of elements originally passed
to dma_map_sg_*() function, not the one returned in sgtable's nents.

Fixes: 1ffe0959 ("udmabuf: fix dma-buf cpu access")
CC: stable@vger.kernel.org
Signed-off-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
Acked-by: default avatarVivek Kasireddy <vivek.kasireddy@intel.com>
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
Link: https://lore.kernel.org/r/20250507160913.2084079-3-m.szyprowski@samsung.com
parent aa3f93cd
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -264,8 +264,7 @@ static int begin_cpu_udmabuf(struct dma_buf *buf,
			ubuf->sg = NULL;
		}
	} else {
		dma_sync_sg_for_cpu(dev, ubuf->sg->sgl, ubuf->sg->nents,
				    direction);
		dma_sync_sgtable_for_cpu(dev, ubuf->sg, direction);
	}

	return ret;
@@ -280,7 +279,7 @@ static int end_cpu_udmabuf(struct dma_buf *buf,
	if (!ubuf->sg)
		return -EINVAL;

	dma_sync_sg_for_device(dev, ubuf->sg->sgl, ubuf->sg->nents, direction);
	dma_sync_sgtable_for_device(dev, ubuf->sg, direction);
	return 0;
}