[PATCHv2 10/31] drm/omap: use dma_mapping_error in omap_gem_dma_sync

Laurent Pinchart laurent.pinchart at ideasonboard.com
Mon Feb 29 21:51:15 UTC 2016


Hi Tomi,

Thank you for the patch.

On Friday 26 February 2016 11:35:58 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>

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

> ---
>  drivers/gpu/drm/omapdrm/omap_gem.c | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/omapdrm/omap_gem.c
> b/drivers/gpu/drm/omapdrm/omap_gem.c index cb541d6b3c2b..21989d3518f2
> 100644
> --- a/drivers/gpu/drm/omapdrm/omap_gem.c
> +++ b/drivers/gpu/drm/omapdrm/omap_gem.c
> @@ -776,9 +776,20 @@ 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,
> +						"%s: failed to map page\n",
> +						__func__);
> +					break;
> +				}
> +
>  				dirty = true;
> +				omap_obj->addrs[i] = addr;
>  			}
>  		}

-- 
Regards,

Laurent Pinchart



More information about the dri-devel mailing list