[PATCH 12/33] drm/omap: use dma_mapping_error in omap_gem_dma_sync
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Tue Feb 23 22:14:04 UTC 2016
Hi Tomi,
Thank you for the patch.
On Friday 19 February 2016 11:47:47 Tomi Valkeinen wrote:
> omap_gem_dma_sync() calls dma_map_page() but does not check the possible
> error with dma_mapping_error(). If DMA-API debugging is enabled, the
> debug layer will give a warning if dma_mapping_error() has not been
> used.
>
> This patch adds proper error handling to omap_gem_dma_sync().
>
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
> ---
> drivers/gpu/drm/omapdrm/omap_gem.c | 11 ++++++++++-
> 1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/omapdrm/omap_gem.c
> b/drivers/gpu/drm/omapdrm/omap_gem.c index 7098190815f1..a60c30a59f7e
> 100644
> --- a/drivers/gpu/drm/omapdrm/omap_gem.c
> +++ b/drivers/gpu/drm/omapdrm/omap_gem.c
> @@ -775,9 +775,18 @@ void omap_gem_dma_sync(struct drm_gem_object *obj,
>
> for (i = 0; i < npages; i++) {
> if (!omap_obj->addrs[i]) {
> - omap_obj->addrs[i] = dma_map_page(dev->dev, pages[i], 0,
> + dma_addr_t addr;
> +
> + addr = dma_map_page(dev->dev, pages[i], 0,
> PAGE_SIZE, DMA_BIDIRECTIONAL);
> +
> + if (dma_mapping_error(dev->dev, addr)) {
> + dev_warn(dev->dev, "omap_gem_dma_sync: dma_map_page
failed\n");
Same comment as for the previous patch.
No need to unmap ?
> + break;
> + }
> +
> dirty = true;
> + omap_obj->addrs[i] = addr;
> }
> }
--
Regards,
Laurent Pinchart
More information about the dri-devel
mailing list