]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm: factor out drm_close_helper() function
authorEmil Velikov <emil.velikov@collabora.com>
Mon, 14 Jan 2019 08:44:09 +0000 (08:44 +0000)
committerEmil Velikov <emil.l.velikov@gmail.com>
Wed, 13 Feb 2019 17:39:32 +0000 (17:39 +0000)
Will be used to plug an existing memory leak.

Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20190114084410.15266-1-emil.l.velikov@gmail.com
drivers/gpu/drm/drm_file.c

index 46f48f245eb5a5df0db52e17d188ac01da723510..e9607acfb62925da38b000739dee946d73740c2d 100644 (file)
@@ -262,6 +262,18 @@ void drm_file_free(struct drm_file *file)
        kfree(file);
 }
 
+static void drm_close_helper(struct file *filp)
+{
+       struct drm_file *file_priv = filp->private_data;
+       struct drm_device *dev = file_priv->minor->dev;
+
+       mutex_lock(&dev->filelist_mutex);
+       list_del(&file_priv->lhead);
+       mutex_unlock(&dev->filelist_mutex);
+
+       drm_file_free(file_priv);
+}
+
 static int drm_setup(struct drm_device * dev)
 {
        int ret;
@@ -473,11 +485,7 @@ int drm_release(struct inode *inode, struct file *filp)
 
        DRM_DEBUG("open_count = %d\n", dev->open_count);
 
-       mutex_lock(&dev->filelist_mutex);
-       list_del(&file_priv->lhead);
-       mutex_unlock(&dev->filelist_mutex);
-
-       drm_file_free(file_priv);
+       drm_close_helper(filp);
 
        if (!--dev->open_count) {
                drm_lastclose(dev);