drm/i915: Fixup for 'Hold mode_config->mutex during hotplug'
authorKeith Packard <keithp@keithp.com>
Thu, 28 Jul 2011 22:31:19 +0000 (15:31 -0700)
committerKeith Packard <keithp@keithp.com>
Thu, 28 Jul 2011 22:41:51 +0000 (15:41 -0700)
drm_helper_hpd_irq_event queues another work proc to go and deliver
the user-space event, and that function also wants to hold the config
mutex, so we shouldn't hold the mutex across the
drm_helper_hpd_irq_event call.

Signed-off-by: Keith Packard <keithp@keithp.com>
drivers/gpu/drm/i915/i915_irq.c

index 9da2a2c9995306bd8a6efb475e68cb84a4ebc831..9b1d669f7d4b72e0464e10337af8774664880ae8 100644 (file)
@@ -313,10 +313,10 @@ static void i915_hotplug_work_func(struct work_struct *work)
                if (encoder->hot_plug)
                        encoder->hot_plug(encoder);
 
+       mutex_unlock(&mode_config->mutex);
+
        /* 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)