From: Keith Packard Date: Thu, 28 Jul 2011 22:31:19 +0000 (-0700) Subject: drm/i915: Fixup for 'Hold mode_config->mutex during hotplug' X-Git-Tag: MMI-PSA29.97-13-9~18635^2~10^2~8^2~9 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=40ee3381dd1010432acc13e907329029096c5bfc;p=GitHub%2FMotorolaMobilityLLC%2Fkernel-slsi.git drm/i915: Fixup for 'Hold mode_config->mutex during hotplug' 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 --- diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index 9da2a2c99953..9b1d669f7d4b 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c @@ -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)