瀏覽代碼

drm/armada: fix gem object free after failed prime import

Fix the gem object freeing after a partial import of a dma buffer,
eg, one which has been imported, but not mapped.  This was provoking
a warning from the dma_buf code.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Russell King 10 年之前
父節點
當前提交
0481c8c47f
共有 1 個文件被更改,包括 3 次插入2 次删除
  1. 3 2
      drivers/gpu/drm/armada/armada_gem.c

+ 3 - 2
drivers/gpu/drm/armada/armada_gem.c

@@ -69,8 +69,9 @@ void armada_gem_free_object(struct drm_gem_object *obj)
 
 
 	if (dobj->obj.import_attach) {
 	if (dobj->obj.import_attach) {
 		/* We only ever display imported data */
 		/* We only ever display imported data */
-		dma_buf_unmap_attachment(dobj->obj.import_attach, dobj->sgt,
-					 DMA_TO_DEVICE);
+		if (dobj->sgt)
+			dma_buf_unmap_attachment(dobj->obj.import_attach,
+						 dobj->sgt, DMA_TO_DEVICE);
 		drm_prime_gem_destroy(&dobj->obj, NULL);
 		drm_prime_gem_destroy(&dobj->obj, NULL);
 	}
 	}