Module Name:    src
Committed By:   riastradh
Date:           Wed Jan 22 14:58:12 UTC 2014

Modified Files:
        src/sys/external/bsd/drm2/dist/drm/i915 [riastradh-drm2]: i915_irq.c

Log Message:
Take irq_lock before waking up irq_queue in i915_handle_error.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.8 -r1.1.1.1.2.9 \
    src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c
diff -u src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c:1.1.1.1.2.8 src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c:1.1.1.1.2.9
--- src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c:1.1.1.1.2.8	Wed Jan 15 13:53:32 2014
+++ src/sys/external/bsd/drm2/dist/drm/i915/i915_irq.c	Wed Jan 22 14:58:12 2014
@@ -1497,8 +1497,13 @@ void i915_handle_error(struct drm_device
 		 */
 		for_each_ring(ring, dev_priv, i)
 #ifdef __NetBSD__
+		    {
+			unsigned long flags;
+			spin_lock_irqsave(&dev_priv->irq_lock, flags);
 			DRM_SPIN_WAKEUP_ALL(&ring->irq_queue,
 			    &dev_priv->irq_lock);
+			spin_unlock_irqrestore(&dev_priv->irq_lock, flags);
+		    }
 #else
 			wake_up_all(&ring->irq_queue);
 #endif

Reply via email to