forked from Minki/linux
drm/exynos: fix not to remain exynos_gem_obj as a leak
The exynos_drm_gem_create() only calls drm_gem_object_release() when exynos_drm_alloc_buf() is failed, and exynos_gem_obj remains as a leak, which is allocated in exynos_drm_gem_init(). So this patch fixes it not to remain as a leak. Signed-off-by: YoungJun Cho <yj44.cho@samsung.com> Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com>
This commit is contained in:
parent
8eed2641df
commit
c58c1599cd
@ -246,13 +246,14 @@ struct exynos_drm_gem_obj *exynos_drm_gem_create(struct drm_device *dev,
|
||||
exynos_gem_obj->flags = flags;
|
||||
|
||||
ret = exynos_drm_alloc_buf(dev, buf, flags);
|
||||
if (ret < 0) {
|
||||
drm_gem_object_release(&exynos_gem_obj->base);
|
||||
goto err_fini_buf;
|
||||
}
|
||||
if (ret < 0)
|
||||
goto err_gem_fini;
|
||||
|
||||
return exynos_gem_obj;
|
||||
|
||||
err_gem_fini:
|
||||
drm_gem_object_release(&exynos_gem_obj->base);
|
||||
kfree(exynos_gem_obj);
|
||||
err_fini_buf:
|
||||
exynos_drm_fini_buf(dev, buf);
|
||||
return ERR_PTR(ret);
|
||||
|
Loading…
Reference in New Issue
Block a user