Message ID | 20200826063316.23486-17-m.szyprowski@samsung.com |
---|---|
State | Superseded |
Headers | show |
Series | DRM: fix struct sg_table nents vs. orig_nents misuse | expand |
On 2020-08-26 07:33, Marek Szyprowski wrote: > Use common helper for checking the contiguity of the imported dma-buf. Reviewed-by: Robin Murphy <robin.murphy@arm.com> > Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> > --- > drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 19 +------------------ > 1 file changed, 1 insertion(+), 18 deletions(-) > > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c > index b9275ba7c5a5..2970e534e2bb 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c > @@ -460,23 +460,6 @@ struct sg_table *rockchip_gem_prime_get_sg_table(struct drm_gem_object *obj) > return sgt; > } > > -static unsigned long rockchip_sg_get_contiguous_size(struct sg_table *sgt, > - int count) > -{ > - struct scatterlist *s; > - dma_addr_t expected = sg_dma_address(sgt->sgl); > - unsigned int i; > - unsigned long size = 0; > - > - for_each_sg(sgt->sgl, s, count, i) { > - if (sg_dma_address(s) != expected) > - break; > - expected = sg_dma_address(s) + sg_dma_len(s); > - size += sg_dma_len(s); > - } > - return size; > -} > - > static int > rockchip_gem_iommu_map_sg(struct drm_device *drm, > struct dma_buf_attachment *attach, > @@ -498,7 +481,7 @@ rockchip_gem_dma_map_sg(struct drm_device *drm, > if (!count) > return -EINVAL; > > - if (rockchip_sg_get_contiguous_size(sg, count) < attach->dmabuf->size) { > + if (drm_prime_get_contiguous_size(sg) < attach->dmabuf->size) { > DRM_ERROR("failed to map sg_table to contiguous linear address.\n"); > dma_unmap_sg(drm->dev, sg->sgl, sg->nents, > DMA_BIDIRECTIONAL); > _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c index b9275ba7c5a5..2970e534e2bb 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c @@ -460,23 +460,6 @@ struct sg_table *rockchip_gem_prime_get_sg_table(struct drm_gem_object *obj) return sgt; } -static unsigned long rockchip_sg_get_contiguous_size(struct sg_table *sgt, - int count) -{ - struct scatterlist *s; - dma_addr_t expected = sg_dma_address(sgt->sgl); - unsigned int i; - unsigned long size = 0; - - for_each_sg(sgt->sgl, s, count, i) { - if (sg_dma_address(s) != expected) - break; - expected = sg_dma_address(s) + sg_dma_len(s); - size += sg_dma_len(s); - } - return size; -} - static int rockchip_gem_iommu_map_sg(struct drm_device *drm, struct dma_buf_attachment *attach, @@ -498,7 +481,7 @@ rockchip_gem_dma_map_sg(struct drm_device *drm, if (!count) return -EINVAL; - if (rockchip_sg_get_contiguous_size(sg, count) < attach->dmabuf->size) { + if (drm_prime_get_contiguous_size(sg) < attach->dmabuf->size) { DRM_ERROR("failed to map sg_table to contiguous linear address.\n"); dma_unmap_sg(drm->dev, sg->sgl, sg->nents, DMA_BIDIRECTIONAL);
Use common helper for checking the contiguity of the imported dma-buf. Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com> --- drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) -- 2.17.1 _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel