aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2010-10-03 22:36:26 -0400
committerChris Wilson <chris@chris-wilson.co.uk>2010-10-04 04:43:16 -0400
commitf87ea7613126ace98c0cb8b86f58e16a0e539375 (patch)
tree937bdba45e1fc7152daa48f9bcd83aee3462aaf8
parent58e10eb92d36a62568349d985c9140d9be16a99c (diff)
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>
-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)
6127 struct drm_crtc *crtc; 6127 struct drm_crtc *crtc;
6128 struct intel_crtc *intel_crtc; 6128 struct intel_crtc *intel_crtc;
6129 6129
6130 drm_kms_helper_poll_fini(dev);
6130 mutex_lock(&dev->struct_mutex); 6131 mutex_lock(&dev->struct_mutex);
6131 6132
6132 drm_kms_helper_poll_fini(dev);
6133 intel_fbdev_fini(dev); 6133 intel_fbdev_fini(dev);
6134 6134
6135 list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { 6135 list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {