Hi Tomi, Thank you for the patch. On Friday 26 February 2016 11:35:57 Tomi Valkeinen wrote: > omap_gem_attach_pages() 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_attach_pages(). > > Signed-off-by: Tomi Valkeinen <tomi.valkeinen@xxxxxx> Reviewed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/omapdrm/omap_gem.c | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/drivers/gpu/drm/omapdrm/omap_gem.c > b/drivers/gpu/drm/omapdrm/omap_gem.c index 8495a1a4b617..cb541d6b3c2b > 100644 > --- a/drivers/gpu/drm/omapdrm/omap_gem.c > +++ b/drivers/gpu/drm/omapdrm/omap_gem.c > @@ -264,6 +264,19 @@ static int omap_gem_attach_pages(struct drm_gem_object > *obj) for (i = 0; i < npages; i++) { > addrs[i] = dma_map_page(dev->dev, pages[i], > 0, PAGE_SIZE, DMA_BIDIRECTIONAL); > + > + if (dma_mapping_error(dev->dev, addrs[i])) { > + dev_warn(dev->dev, > + "%s: failed to map page\n", __func__); > + > + for (i = i - 1; i >= 0; --i) { > + dma_unmap_page(dev->dev, addrs[i], > + PAGE_SIZE, DMA_BIDIRECTIONAL); > + } > + > + ret = -ENOMEM; > + goto free_addrs; > + } > } > } else { > addrs = kzalloc(npages * sizeof(*addrs), GFP_KERNEL); > @@ -278,6 +291,8 @@ static int omap_gem_attach_pages(struct drm_gem_object > *obj) > > return 0; > > +free_addrs: > + kfree(addrs); > free_pages: > drm_gem_put_pages(obj, pages, true, false); -- Regards, Laurent Pinchart _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel