Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 371636
b: refs/heads/master
c: 011c228
h: refs/heads/master
v: v3
  • Loading branch information
Imre Deak authored and Dave Airlie committed Apr 30, 2013
1 parent 2dbf36b commit 8d258c0
Show file tree
Hide file tree
Showing 6 changed files with 19 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 219b47339ced80ca580bb6ce7d1636166984afa7
refs/heads/master: 011c2282c74db120f01a8414edc66c3f217f5511
8 changes: 7 additions & 1 deletion trunk/drivers/gpu/drm/drm_prime.c
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,6 @@ struct drm_gem_object *drm_gem_prime_import(struct drm_device *dev,
* refcount on gem itself instead of f_count of dmabuf.
*/
drm_gem_object_reference(obj);
dma_buf_put(dma_buf);
return obj;
}
}
Expand All @@ -280,6 +279,8 @@ struct drm_gem_object *drm_gem_prime_import(struct drm_device *dev,
if (IS_ERR(attach))
return ERR_PTR(PTR_ERR(attach));

get_dma_buf(dma_buf);

sgt = dma_buf_map_attachment(attach, DMA_BIDIRECTIONAL);
if (IS_ERR_OR_NULL(sgt)) {
ret = PTR_ERR(sgt);
Expand All @@ -300,6 +301,8 @@ struct drm_gem_object *drm_gem_prime_import(struct drm_device *dev,
dma_buf_unmap_attachment(attach, sgt, DMA_BIDIRECTIONAL);
fail_detach:
dma_buf_detach(dma_buf, attach);
dma_buf_put(dma_buf);

return ERR_PTR(ret);
}
EXPORT_SYMBOL(drm_gem_prime_import);
Expand Down Expand Up @@ -342,6 +345,9 @@ int drm_gem_prime_fd_to_handle(struct drm_device *dev,
goto fail;

mutex_unlock(&file_priv->prime.lock);

dma_buf_put(dma_buf);

return 0;

fail:
Expand Down
4 changes: 3 additions & 1 deletion trunk/drivers/gpu/drm/exynos/exynos_drm_dmabuf.c
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,6 @@ struct drm_gem_object *exynos_dmabuf_prime_import(struct drm_device *drm_dev,
* refcount on gem itself instead of f_count of dmabuf.
*/
drm_gem_object_reference(obj);
dma_buf_put(dma_buf);
return obj;
}
}
Expand All @@ -244,6 +243,7 @@ struct drm_gem_object *exynos_dmabuf_prime_import(struct drm_device *drm_dev,
if (IS_ERR(attach))
return ERR_PTR(-EINVAL);

get_dma_buf(dma_buf);

sgt = dma_buf_map_attachment(attach, DMA_BIDIRECTIONAL);
if (IS_ERR_OR_NULL(sgt)) {
Expand Down Expand Up @@ -298,6 +298,8 @@ struct drm_gem_object *exynos_dmabuf_prime_import(struct drm_device *drm_dev,
dma_buf_unmap_attachment(attach, sgt, DMA_BIDIRECTIONAL);
err_buf_detach:
dma_buf_detach(dma_buf, attach);
dma_buf_put(dma_buf);

return ERR_PTR(ret);
}

Expand Down
5 changes: 4 additions & 1 deletion trunk/drivers/gpu/drm/i915/i915_gem_dmabuf.c
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,6 @@ struct drm_gem_object *i915_gem_prime_import(struct drm_device *dev,
* refcount on gem itself instead of f_count of dmabuf.
*/
drm_gem_object_reference(&obj->base);
dma_buf_put(dma_buf);
return &obj->base;
}
}
Expand All @@ -282,6 +281,8 @@ struct drm_gem_object *i915_gem_prime_import(struct drm_device *dev,
if (IS_ERR(attach))
return ERR_CAST(attach);

get_dma_buf(dma_buf);

obj = i915_gem_object_alloc(dev);
if (obj == NULL) {
ret = -ENOMEM;
Expand All @@ -301,5 +302,7 @@ struct drm_gem_object *i915_gem_prime_import(struct drm_device *dev,

fail_detach:
dma_buf_detach(dma_buf, attach);
dma_buf_put(dma_buf);

return ERR_PTR(ret);
}
1 change: 0 additions & 1 deletion trunk/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,6 @@ struct drm_gem_object *omap_gem_prime_import(struct drm_device *dev,
* refcount on gem itself instead of f_count of dmabuf.
*/
drm_gem_object_reference(obj);
dma_buf_put(buffer);
return obj;
}
}
Expand Down
4 changes: 4 additions & 0 deletions trunk/drivers/gpu/drm/udl/udl_gem.c
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,8 @@ struct drm_gem_object *udl_gem_prime_import(struct drm_device *dev,
if (IS_ERR(attach))
return ERR_CAST(attach);

get_dma_buf(dma_buf);

sg = dma_buf_map_attachment(attach, DMA_BIDIRECTIONAL);
if (IS_ERR(sg)) {
ret = PTR_ERR(sg);
Expand All @@ -322,5 +324,7 @@ struct drm_gem_object *udl_gem_prime_import(struct drm_device *dev,
dma_buf_unmap_attachment(attach, sg, DMA_BIDIRECTIONAL);
fail_detach:
dma_buf_detach(dma_buf, attach);
dma_buf_put(dma_buf);

return ERR_PTR(ret);
}

0 comments on commit 8d258c0

Please sign in to comment.