From: Maarten Lankhorst Date: Wed, 9 Sep 2015 14:40:56 +0000 (+0200) Subject: drm/core: Preserve the framebuffer after removing it. X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=13803132818c;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git drm/core: Preserve the framebuffer after removing it. Previously RMFB and fd close chose to disable any plane that had an active framebuffer from this file. If it was a primary plane the crtc was disabled. However the fbdev code or any system compositor should restore the planes anyway so there's no need to do it twice. The old fb_id is zero'd, so there's no danger of being able to restore the fb from fb_id. Signed-off-by: Maarten Lankhorst Reviewed-by: David Herrmann Signed-off-by: Daniel Vetter --- diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index 9b9c4b41422a..626b0a57efbf 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c @@ -3327,7 +3327,7 @@ int drm_mode_rmfb(struct drm_device *dev, mutex_unlock(&dev->mode_config.fb_lock); mutex_unlock(&file_priv->fbs_lock); - drm_framebuffer_remove(fb); + drm_framebuffer_unreference(fb); return 0; @@ -3517,7 +3517,7 @@ void drm_fb_release(struct drm_file *priv) list_del_init(&fb->filp_head); /* This will also drop the fpriv->fbs reference. */ - drm_framebuffer_remove(fb); + drm_framebuffer_unreference(fb); } }