drm/omap: omap_gem: Do not try to unmap page which is not mapped
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Fri, 27 Nov 2015 09:00:37 +0000 (11:00 +0200)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Wed, 2 Nov 2016 08:38:28 +0000 (10:38 +0200)
It might be possible that the page has been unmapped already in
omap_gem_cpu_sync() so check before calling dma_unmap_page().

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/gpu/drm/omapdrm/omap_gem.c

index 505dee0..d4e1e11 100644 (file)
@@ -336,8 +336,10 @@ static void omap_gem_detach_pages(struct drm_gem_object *obj)
        if (omap_obj->flags & (OMAP_BO_WC|OMAP_BO_UNCACHED)) {
                int i, npages = obj->size >> PAGE_SHIFT;
                for (i = 0; i < npages; i++) {
-                       dma_unmap_page(obj->dev->dev, omap_obj->addrs[i],
-                                       PAGE_SIZE, DMA_BIDIRECTIONAL);
+                       if (omap_obj->addrs[i])
+                               dma_unmap_page(obj->dev->dev,
+                                              omap_obj->addrs[i],
+                                              PAGE_SIZE, DMA_BIDIRECTIONAL);
                }
        }