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;
>  }
>  

Reply via email to