diff --git a/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c b/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c index 5e9440568a78..10fdb766563c 100644 --- a/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c +++ b/sys/external/bsd/drm2/dist/drm/i915/i915_gem.c @@ -1448,6 +1448,7 @@ int __i915_wait_request(struct drm_i915_gem_request *req, ((wedged = (reset_counter != \ atomic_read(&dev_priv->gpu_error.reset_counter))) || \ i915_gem_request_completed(req, false)) + spin_lock_irq(&dev_priv->irq_lock); if (timeout) { int ticks = missed_irq(dev_priv, ring) ? 1 : nsecs_to_jiffies_timeout(*timeout); @@ -1474,6 +1475,7 @@ int __i915_wait_request(struct drm_i915_gem_request *req, } /* ret is negative on failure or zero on success. */ } + spin_unlock_irq(&dev_priv->irq_lock); if (wedged) { ret = i915_gem_check_wedge(&dev_priv->gpu_error, interruptible); if (ret == 0)