summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_display.c
diff options
context:
space:
mode:
authorKeith Packard2010-10-04 04:36:26 +0200
committerChris Wilson2010-10-04 10:43:16 +0200
commitf87ea7613126ace98c0cb8b86f58e16a0e539375 (patch)
tree937bdba45e1fc7152daa48f9bcd83aee3462aaf8 /drivers/gpu/drm/i915/intel_display.c
parentMerge branch 'drm-intel-fixes' into drm-intel-next (diff)
downloadkernel-qcow2-linux-f87ea7613126ace98c0cb8b86f58e16a0e539375.tar.gz
kernel-qcow2-linux-f87ea7613126ace98c0cb8b86f58e16a0e539375.tar.xz
kernel-qcow2-linux-f87ea7613126ace98c0cb8b86f58e16a0e539375.zip
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 <keithp@keithp.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_display.c')
-rw-r--r--drivers/gpu/drm/i915/intel_display.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index a2e8e15b8f5a..f55b560c468f 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) {