udmabuf: use sgtable-based scatterlist wrappers
commit afe382843717d44b24ef5014d57dcbaab75a4052 upstream.
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: 1ffe095901
("udmabuf: fix dma-buf cpu access")
CC: stable@vger.kernel.org
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Acked-by: Vivek Kasireddy <vivek.kasireddy@intel.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Christian König <christian.koenig@amd.com>
Link: https://lore.kernel.org/r/20250507160913.2084079-3-m.szyprowski@samsung.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
bfa4d86e13
commit
372b511e93
@@ -161,8 +161,7 @@ static int begin_cpu_udmabuf(struct dma_buf *buf,
|
|||||||
ubuf->sg = NULL;
|
ubuf->sg = NULL;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
dma_sync_sg_for_cpu(dev, ubuf->sg->sgl, ubuf->sg->nents,
|
dma_sync_sgtable_for_cpu(dev, ubuf->sg, direction);
|
||||||
direction);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@@ -177,7 +176,7 @@ static int end_cpu_udmabuf(struct dma_buf *buf,
|
|||||||
if (!ubuf->sg)
|
if (!ubuf->sg)
|
||||||
return -EINVAL;
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user