commit 07d5435afb2bbf4bcdb1cffd47815fcc5678eeec Author: Pierre Willenbrock Date: Fri Nov 28 23:23:21 2008 +0100 Make irq storm go away. diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index c367358..3e398f9 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -212,10 +212,11 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS) I915_WRITE(PIPEBSTAT, pipeb_stats); irq_received = 1; } - spin_unlock_irqrestore(&dev_priv->user_irq_lock, irqflags); - if (!irq_received) + if (!irq_received) { + spin_unlock_irqrestore(&dev_priv->user_irq_lock, irqflags); break; + } ret = IRQ_HANDLED; @@ -231,6 +232,8 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS) DRM_WAKEUP(&dev_priv->irq_queue); } + spin_unlock_irqrestore(&dev_priv->user_irq_lock, irqflags); + if (pipea_stats & vblank_status) { vblank++; drm_handle_vblank(dev, 0);