aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2014-03-19 23:20:00 -0400
committerDave Airlie <airlied@redhat.com>2014-03-19 23:20:00 -0400
commit004e5cf743086990e5fc04a14437b3966d7fa9a2 (patch)
tree50ab1e0ae805209d68d3005e819ddbf29297ec3d
parent55ae26b7953f0de851559b155800cd3b6f433164 (diff)
parent85d898bf8f638b7a23af95dc7d32b4a72c178637 (diff)
Merge branch 'exynos-drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-fixes
Just fixed resource release issue at open fail. * 'exynos-drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos: drm/exynos: Fix (more) freeing issues in exynos_drm_drv.c
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_drv.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
index 215131ab1dd2..c204b4e3356e 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
@@ -172,20 +172,24 @@ static int exynos_drm_open(struct drm_device *dev, struct drm_file *file)
172 172
173 ret = exynos_drm_subdrv_open(dev, file); 173 ret = exynos_drm_subdrv_open(dev, file);
174 if (ret) 174 if (ret)
175 goto out; 175 goto err_file_priv_free;
176 176
177 anon_filp = anon_inode_getfile("exynos_gem", &exynos_drm_gem_fops, 177 anon_filp = anon_inode_getfile("exynos_gem", &exynos_drm_gem_fops,
178 NULL, 0); 178 NULL, 0);
179 if (IS_ERR(anon_filp)) { 179 if (IS_ERR(anon_filp)) {
180 ret = PTR_ERR(anon_filp); 180 ret = PTR_ERR(anon_filp);
181 goto out; 181 goto err_subdrv_close;
182 } 182 }
183 183
184 anon_filp->f_mode = FMODE_READ | FMODE_WRITE; 184 anon_filp->f_mode = FMODE_READ | FMODE_WRITE;
185 file_priv->anon_filp = anon_filp; 185 file_priv->anon_filp = anon_filp;
186 186
187 return ret; 187 return ret;
188out: 188
189err_subdrv_close:
190 exynos_drm_subdrv_close(dev, file);
191
192err_file_priv_free:
189 kfree(file_priv); 193 kfree(file_priv);
190 file->driver_priv = NULL; 194 file->driver_priv = NULL;
191 return ret; 195 return ret;