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@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);
On Tue, Feb 19, 2013 at 04:18:07PM +0100, Thierry Reding wrote:
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@avionic-design.de
http://lists.freedesktop.org/archives/dri-devel/2013-February/034978.html
On Tue, Feb 19, 2013 at 05:32:56PM +0200, Ville Syrjälä wrote:
On Tue, Feb 19, 2013 at 04:18:07PM +0100, Thierry Reding wrote:
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@avionic-design.de
http://lists.freedesktop.org/archives/dri-devel/2013-February/034978.html
Darn, I had searched for it but must have missed it. Thanks.
Thierry
dri-devel@lists.freedesktop.org