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