drm: unconditionally clean up dma buffers of closing clients
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 25 Oct 2011 22:31:26 +0000 (00:31 +0200)
committerDave Airlie <airlied@redhat.com>
Fri, 20 Jul 2012 02:51:04 +0000 (22:51 -0400)
With the last patch to ditch DMA_QUEUE support, we should be able
to call the dma cleanup uncoditionally, even when the master has
disappeared.

Do so because it just makes more sense.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/drm_fops.c

index c6f5f89..d25a617 100644 (file)
@@ -376,9 +376,6 @@ static void drm_master_release(struct drm_device *dev, struct file *filp)
                drm_lock_free(&file_priv->master->lock,
                              _DRM_LOCKING_CONTEXT(file_priv->master->lock.hw_lock->lock));
        }
-
-       if (drm_core_check_feature(dev, DRIVER_HAVE_DMA))
-               drm_core_reclaim_buffers(dev, file_priv);
 }
 
 static void drm_events_release(struct drm_file *file_priv)
@@ -448,6 +445,9 @@ int drm_release(struct inode *inode, struct file *filp)
        if (file_priv->minor->master)
                drm_master_release(dev, filp);
 
+       if (drm_core_check_feature(dev, DRIVER_HAVE_DMA))
+               drm_core_reclaim_buffers(dev, file_priv);
+
        drm_events_release(file_priv);
 
        if (dev->driver->driver_features & DRIVER_MODESET)