drm/i915: avoid struct mutex output_poll mutex lock loop on unload
authorKeith Packard <keithp@keithp.com>
Mon, 4 Oct 2010 02:36:26 +0000 (19:36 -0700)
committerChris Wilson <chris@chris-wilson.co.uk>
Mon, 4 Oct 2010 08:43:16 +0000 (09:43 +0100)
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 <keithp@keithp.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/intel_display.c

index a2e8e15..f55b560 100644 (file)
@@ -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) {