Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/omap: use dma_mapping_error in omap_gem_dma_sync

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@ti.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

+12 -1
+12 -1
drivers/gpu/drm/omapdrm/omap_gem.c
··· 776 776 777 777 for (i = 0; i < npages; i++) { 778 778 if (!omap_obj->addrs[i]) { 779 - omap_obj->addrs[i] = dma_map_page(dev->dev, pages[i], 0, 779 + dma_addr_t addr; 780 + 781 + addr = dma_map_page(dev->dev, pages[i], 0, 780 782 PAGE_SIZE, DMA_BIDIRECTIONAL); 783 + 784 + if (dma_mapping_error(dev->dev, addr)) { 785 + dev_warn(dev->dev, 786 + "%s: failed to map page\n", 787 + __func__); 788 + break; 789 + } 790 + 781 791 dirty = true; 792 + omap_obj->addrs[i] = addr; 782 793 } 783 794 } 784 795