This avoids the need to unpin on the error path.

Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
---
 drivers/gpu/drm/i915/intel_overlay2.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_overlay2.c 
b/drivers/gpu/drm/i915/intel_overlay2.c
index 2e38b15..e583bd0 100644
--- a/drivers/gpu/drm/i915/intel_overlay2.c
+++ b/drivers/gpu/drm/i915/intel_overlay2.c
@@ -62,9 +62,6 @@ intel_update_plane(struct drm_plane *plane, struct drm_crtc 
*crtc,
        old_obj = intel_plane->obj;

        mutex_lock(&dev->struct_mutex);
-       ret = intel_pin_and_fence_fb_obj(dev, obj, NULL);
-       if (ret)
-               goto out_unlock;

        dvscntr = I915_READ(reg);

@@ -104,6 +101,10 @@ intel_update_plane(struct drm_plane *plane, struct 
drm_crtc *crtc,
                goto out_unlock;
        }

+       ret = intel_pin_and_fence_fb_obj(dev, obj, NULL);
+       if (ret)
+               goto out_unlock;
+
        intel_plane->obj = obj;

        dvscntr |= DVS_TILED;
-- 
1.7.4.1

Reply via email to