drm/i915: Do not unlock upon error in i915_gem_idle()
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 13 Sep 2013 22:57:04 +0000 (23:57 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 1 Oct 2013 05:45:03 +0000 (07:45 +0200)
We never took the lock ourselves and all callers expect the struct_mutex
to be locked upon return (be it success or error), thereore dropping the
lock along the error paths looks to be a vestigial error from

commit db1b76ca6a79c774074ae87bee7afc0825a478f5
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Tue Jul 9 16:51:37 2013 +0200

    drm/i915: don't frob mm.suspended when not using ums

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
drivers/gpu/drm/i915/i915_gem.c

index 96f65a15ffc9a4ebdfeb0696cd02742e644fdc7b..96ad99ccf0ac3a6316741209bd44bce08f866b09 100644 (file)
@@ -4232,16 +4232,13 @@ i915_gem_idle(struct drm_device *dev)
        drm_i915_private_t *dev_priv = dev->dev_private;
        int ret;
 
-       if (dev_priv->ums.mm_suspended) {
-               mutex_unlock(&dev->struct_mutex);
+       if (dev_priv->ums.mm_suspended)
                return 0;
-       }
 
        ret = i915_gpu_idle(dev);
-       if (ret) {
-               mutex_unlock(&dev->struct_mutex);
+       if (ret)
                return ret;
-       }
+
        i915_gem_retire_requests(dev);
 
        /* Under UMS, be paranoid and evict. */