[PATCH] drm: Keep a reference to the active plane framebuffer

Thierry Reding thierry.reding at avionic-design.de
Tue Feb 19 07:18:07 PST 2013


When updating a plane, the DRM core always sets the plane's framebuffer
to NULL. This in turn will cause the reference count on the plane's
active framebuffer to become unbalanced because on the next update, the
old framebuffer will be NULL.

Signed-off-by: Thierry Reding <thierry.reding at avionic-design.de>
---
 drivers/gpu/drm/drm_crtc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index d06ec7e..b235fa0 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -1984,9 +1984,9 @@ int drm_mode_setplane(struct drm_device *dev, void *data,
 					 plane_req->src_w, plane_req->src_h);
 	if (!ret) {
 		old_fb = plane->fb;
+		plane->fb = fb;
 		fb = NULL;
 		plane->crtc = crtc;
-		plane->fb = fb;
 	}
 	drm_modeset_unlock_all(dev);
 
-- 
1.8.1.2



More information about the dri-devel mailing list