Hi Tomi, On Thursday 25 February 2016 17:39:35 Tomi Valkeinen wrote: > On 24/02/16 00:10, Laurent Pinchart wrote: > > On Friday 19 February 2016 11:47:46 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> > >> --- > >> > >> drivers/gpu/drm/omapdrm/omap_gem.c | 14 ++++++++++++++ > >> 1 file changed, 14 insertions(+) > >> > >> diff --git a/drivers/gpu/drm/omapdrm/omap_gem.c > >> b/drivers/gpu/drm/omapdrm/omap_gem.c index 8495a1a4b617..7098190815f1 > >> 100644 > >> --- a/drivers/gpu/drm/omapdrm/omap_gem.c > >> +++ b/drivers/gpu/drm/omapdrm/omap_gem.c > >> @@ -264,6 +264,18 @@ 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, "omap_gem_attach_pages: dma_map_page > > failed\n"); > > > > Using dev_warn(dev->dev, "%s: failed to map page\n", __func__); and proper > > line breaks you'll have no trouble complying with the 80 characters per > > line limit :-) > > Ok. > > >> + > >> + for (i = i - 1; i >= 0; --i) { > > > > Maybe i-- instead of i = i - 1 ? > > Hmm I don't know... I do like assignment in the initializer more than > i--. And why i--? Why not --i? =) --i is fine with me too ;-) Or maybe while (i--) dma_unmap_page(dev->dev, addrs[i], PAGE_SIZE, DMA_BIDIRECTIONAL); > >> + dma_unmap_page(dev->dev, addrs[i], > >> + PAGE_SIZE, DMA_BIDIRECTIONAL); > >> + } > >> + > >> + ret = -ENOMEM; > >> + goto free_addrs; > >> + } > >> > >> } > >> > >> } else { > >> > >> addrs = kzalloc(npages * sizeof(*addrs), GFP_KERNEL); > >> > >> @@ -277,6 +289,8 @@ static int omap_gem_attach_pages(struct > >> drm_gem_object > >> *obj) omap_obj->pages = pages; > >> > >> return 0; > >> > >> +free_addrs: > >> + kfree(addrs); > > > > I'd move this blank line before free_addrs. > > Yes, that makes it cleaner. -- Regards, Laurent Pinchart _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel