summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_irq.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2011-07-25 23:57:41 +0200
committerKeith Packard <keithp@keithp.com>2011-07-25 23:57:41 +0200
commit887a82ee80b42bb14ba70f8138292023d5040b08 (patch)
tree4a3c9fc0ddbdf9b07fbd260f4e013423ec1ce1f6 /drivers/gpu/drm/i915/i915_irq.c
parentMerge branch 'drm-intel-fixes' into drm-intel-next (diff)
parentdrm/i915: Hold mode_config->mutex during hotplug processing (diff)
downloadlinux-887a82ee80b42bb14ba70f8138292023d5040b08.tar.xz
linux-887a82ee80b42bb14ba70f8138292023d5040b08.zip
Merge branch 'drm-intel-fixes' into drm-intel-next
Diffstat (limited to 'drivers/gpu/drm/i915/i915_irq.c')
-rw-r--r--drivers/gpu/drm/i915/i915_irq.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index 23d1ae67d279..7ef3e8b6864d 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -306,6 +306,7 @@ static void i915_hotplug_work_func(struct work_struct *work)
struct drm_mode_config *mode_config = &dev->mode_config;
struct intel_encoder *encoder;
+ mutex_lock(&mode_config->mutex);
DRM_DEBUG_KMS("running encoder hotplug functions\n");
list_for_each_entry(encoder, &mode_config->encoder_list, base.head)
@@ -314,6 +315,8 @@ static void i915_hotplug_work_func(struct work_struct *work)
/* Just fire off a uevent and let userspace tell us what to do */
drm_helper_hpd_irq_event(dev);
+
+ mutex_unlock(&mode_config->mutex);
}
static void i915_handle_rps_change(struct drm_device *dev)