diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 96f65a15ffc9..96ad99ccf0ac 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -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. */