On 5/7/25 18:09, Marek Szyprowski wrote: > 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: 1ffe09590121 ("udmabuf: fix dma-buf cpu access") > CC: sta...@vger.kernel.org > Signed-off-by: Marek Szyprowski <m.szyprow...@samsung.com> > Acked-by: Vivek Kasireddy <vivek.kasire...@intel.com>
Reviewed-by: Christian König <christian.koe...@amd.com> Should I push this one to drm-misc-fixes for upstreaming? Regards, Christian. > --- > drivers/dma-buf/udmabuf.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/dma-buf/udmabuf.c b/drivers/dma-buf/udmabuf.c > index 7eee3eb47a8e..c9d0c68d2fcb 100644 > --- a/drivers/dma-buf/udmabuf.c > +++ b/drivers/dma-buf/udmabuf.c > @@ -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; > } >