diff options
author | Keith Packard <keithp@keithp.com> | 2010-10-03 22:36:26 -0400 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-10-04 04:43:16 -0400 |
commit | f87ea7613126ace98c0cb8b86f58e16a0e539375 (patch) | |
tree | 937bdba45e1fc7152daa48f9bcd83aee3462aaf8 | |
parent | 58e10eb92d36a62568349d985c9140d9be16a99c (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.c | 2 |
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) { |