diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-02-15 15:21:37 -0500 |
---|---|---|
committer | Rob Clark <robdclark@gmail.com> | 2013-02-17 17:55:31 -0500 |
commit | 6e488c00457dad0d433af7f937211fba8d76fd04 (patch) | |
tree | ee4d6b5274e128ef121928f3f4a76767a9f43942 | |
parent | 50fdaae79abbfc4f04b5380ac5abf00fd448c5a5 (diff) |
drm: Don't set the plane->fb to NULL on successfull set_plane
We need to clear the local variable to get the refcounting right
(since the reference drm_mode_setplane holds is transferred to the
plane->fb pointer). But should be done _after_ we update the pointer.
Breakage introduced in
commit 6c2a75325c800de286166c693e0cd33c3a1c5ec8
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date: Tue Dec 11 00:59:24 2012 +0100
drm: refcounting for sprite framebuffers
Reported-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: Rob Clark <rob@ti.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
-rw-r--r-- | drivers/gpu/drm/drm_crtc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index f17077307c65..e7471b0880b7 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c | |||
@@ -1996,9 +1996,9 @@ int drm_mode_setplane(struct drm_device *dev, void *data, | |||
1996 | plane_req->src_w, plane_req->src_h); | 1996 | plane_req->src_w, plane_req->src_h); |
1997 | if (!ret) { | 1997 | if (!ret) { |
1998 | old_fb = plane->fb; | 1998 | old_fb = plane->fb; |
1999 | fb = NULL; | ||
2000 | plane->crtc = crtc; | 1999 | plane->crtc = crtc; |
2001 | plane->fb = fb; | 2000 | plane->fb = fb; |
2001 | fb = NULL; | ||
2002 | } | 2002 | } |
2003 | drm_modeset_unlock_all(dev); | 2003 | drm_modeset_unlock_all(dev); |
2004 | 2004 | ||