aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2013-08-14 18:02:47 -0400
committerDave Airlie <airlied@redhat.com>2013-08-20 22:58:18 -0400
commit838cd4455ee1c76db06175d44319a8e7ac114b0e (patch)
treedb2f792ee85c86a54241008313c37a57cf351aee
parent319c933c71f3dbdb2b3274d1634d3494c70efa06 (diff)
drm/prime: Simplify drm_gem_remove_prime_handles
with the reworking semantics and locking of the obj->dma_buf pointer this pointer is always set as long as there's still a gem handle around and a dma_buf associated with this gem object. Also, the per file-priv lookup-cache for dma-buf importing is also unified between foreign and native objects. Hence we don't need to special case the clean any more and can simply drop the clause which only runs for foreing objects, i.e. with obj->import_attach set. Note that with this change (actually with the previous one to always set up obj->dma_buf even for foreign objects) it is no longer required to set obj->import_attach when importing a foreing object. So update comments accordingly, too. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r--drivers/gpu/drm/drm_gem.c5
-rw-r--r--include/drm/drmP.h5
2 files changed, 5 insertions, 5 deletions
diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c
index 4b3c533be859..0a5a0ca0a52e 100644
--- a/drivers/gpu/drm/drm_gem.c
+++ b/drivers/gpu/drm/drm_gem.c
@@ -191,11 +191,6 @@ EXPORT_SYMBOL(drm_gem_object_alloc);
191static void 191static void
192drm_gem_remove_prime_handles(struct drm_gem_object *obj, struct drm_file *filp) 192drm_gem_remove_prime_handles(struct drm_gem_object *obj, struct drm_file *filp)
193{ 193{
194 if (obj->import_attach) {
195 drm_prime_remove_buf_handle(&filp->prime,
196 obj->import_attach->dmabuf);
197 }
198
199 /* 194 /*
200 * Note: obj->dma_buf can't disappear as long as we still hold a 195 * Note: obj->dma_buf can't disappear as long as we still hold a
201 * handle reference in obj->handle_count. 196 * handle reference in obj->handle_count.
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index a95db49b3f9e..ce1e6bd30306 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -687,6 +687,11 @@ struct drm_gem_object {
687 * 687 *
688 * The driver's ->gem_free_object callback is responsible for cleaning 688 * The driver's ->gem_free_object callback is responsible for cleaning
689 * up the dma_buf attachment and references acquired at import time. 689 * up the dma_buf attachment and references acquired at import time.
690 *
691 * Note that the drm gem/prime core does not depend upon drivers setting
692 * this field any more. So for drivers where this doesn't make sense
693 * (e.g. virtual devices or a displaylink behind an usb bus) they can
694 * simply leave it as NULL.
690 */ 695 */
691 struct dma_buf_attachment *import_attach; 696 struct dma_buf_attachment *import_attach;
692}; 697};