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 a2e8e15b8f5aea485fc868a94a8b59c26afadcd5..f55b560c468fa0a40af559307962d0e9049ef3af 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) {