From: Keith Packard Date: Mon, 4 Oct 2010 02:36:26 +0000 (-0700) Subject: drm/i915: avoid struct mutex output_poll mutex lock loop on unload X-Git-Tag: v2.6.37-rc1~92^2~28^2~4 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=f87ea7613126ace98c0cb8b86f58e16a0e539375;p=~emulex%2Finfiniband.git drm/i915: avoid struct mutex output_poll mutex lock loop on unload Cancel the output polling work proc before acquiring the struct mutex to avoid acquiring the work proc mutex with the struct mutex held. This avoids inverting the lock order seen when the work proc runs. Signed-off-by: Keith Packard Signed-off-by: Chris Wilson --- diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index a2e8e15b8f5..f55b560c468 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c @@ -6127,9 +6127,9 @@ void intel_modeset_cleanup(struct drm_device *dev) struct drm_crtc *crtc; struct intel_crtc *intel_crtc; + drm_kms_helper_poll_fini(dev); mutex_lock(&dev->struct_mutex); - drm_kms_helper_poll_fini(dev); intel_fbdev_fini(dev); list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {