mode_config should be locked when calling drm_helper_resume_force_mode. This patch adds the lock, similar to #927a2f119.
Cc: stable@kernel.org Signed-off-by: Peter Huewe peterhuewe@gmx.de --- drivers/gpu/drm/nouveau/nouveau_drv.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.c b/drivers/gpu/drm/nouveau/nouveau_drv.c index 4f2030b..6260abe 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drv.c +++ b/drivers/gpu/drm/nouveau/nouveau_drv.c @@ -375,7 +375,9 @@ nouveau_pci_resume(struct pci_dev *pdev) nv_crtc->lut.depth = 0; }
+ mutex_lock(&dev->mode_config.mutex); drm_helper_resume_force_mode(dev); + mutex_unlock(&dev->mode_config.mutex);
list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) { struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc);
mode_config should be locked when calling drm_helper_resume_force_mode. This patch adds the lock, similar to #927a2f119.
Cc: stable@kernel.org Signed-off-by: Peter Huewe peterhuewe@gmx.de --- drivers/gpu/drm/radeon/radeon_device.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c index ea7df16..d287f23 100644 --- a/drivers/gpu/drm/radeon/radeon_device.c +++ b/drivers/gpu/drm/radeon/radeon_device.c @@ -973,7 +973,9 @@ int radeon_resume_kms(struct drm_device *dev) /* reset hpd state */ radeon_hpd_init(rdev); /* blat the mode back in */ + mutex_lock(&dev->mode_config.mutex); drm_helper_resume_force_mode(dev); + mutex_unlock(&dev->mode_config.mutex); /* turn on display hw */ list_for_each_entry(connector, &dev->mode_config.connector_list, head) { drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
Am Samstag 14 April 2012, 02:52:19 schrieb Jonathan Nieder:
Hi,
Peter Huewe wrote:
mode_config should be locked when calling drm_helper_resume_force_mode. This patch adds the lock, similar to #927a2f119.
Does this fix a problem that has been observed in the wild, or only a theoretical one?
Curious, Jonathan
Only theoretical ;) Since all other drivers always lock around drm_helper_resume_force_mode I guessed this is good practice.
And since problem area is quite similar to the one mentioned in #927a2f119 / 234f78a683e http://git.kernel.org/?p=linux/kernel/git/stable/linux- stable.git;a=commit;h=234f78a683e30d6d4628846fde4a822c0e385529 the bug might happen in the wild.
Thanks, Peter
dri-devel@lists.freedesktop.org