[PATCH 02/20] drm/i915: unpin backing storage in dmabuf_unmap

Daniel Vetter daniel.vetter at ffwll.ch
Tue Jul 16 00:11:53 PDT 2013


This fixes a WARN in i915_gem_free_object when the
obj->pages_pin_count isn't 0.

Reported-by: Maarten Lankhorst <maarten.lankhorst at canonical.com
Cc: Maarten Lankhorst <maarten.lankhorst at canonical.com
Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
---
 drivers/gpu/drm/i915/i915_gem_dmabuf.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_gem_dmabuf.c b/drivers/gpu/drm/i915/i915_gem_dmabuf.c
index 2e82286..5cec8b0 100644
--- a/drivers/gpu/drm/i915/i915_gem_dmabuf.c
+++ b/drivers/gpu/drm/i915/i915_gem_dmabuf.c
@@ -85,9 +85,13 @@ static void i915_gem_unmap_dma_buf(struct dma_buf_attachment *attachment,
 				   struct sg_table *sg,
 				   enum dma_data_direction dir)
 {
+	struct drm_i915_gem_object *obj = attachment->dmabuf->priv;
+
 	dma_unmap_sg(attachment->dev, sg->sgl, sg->nents, dir);
 	sg_free_table(sg);
 	kfree(sg);
+
+	i915_gem_object_unpin_pages(obj);
 }
 
 static void *i915_gem_dmabuf_vmap(struct dma_buf *dma_buf)
-- 
1.8.3.2



More information about the dri-devel mailing list