diff mbox

[1/2] drm/ast: Fix double lock at PM resume

Message ID 1399616055-13427-1-git-send-email-tiwai@suse.de (mailing list archive)
State New, archived
Headers show

Commit Message

Takashi Iwai May 9, 2014, 6:14 a.m. UTC
The recent commit [3ea87855: drm/helper: lock all around force mode
restore] introduced drm_modeset_lock_all() in
drm_helper_resume_force_mode() itself, while ast driver still takes
this lock before calling it.  Remove the caller side lock for avoid a
fatal deadlock.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 drivers/gpu/drm/ast/ast_drv.c | 2 --
 1 file changed, 2 deletions(-)

Comments

Daniel Vetter May 12, 2014, 8:10 a.m. UTC | #1
On Fri, May 09, 2014 at 08:14:14AM +0200, Takashi Iwai wrote:
> The recent commit [3ea87855: drm/helper: lock all around force mode
> restore] introduced drm_modeset_lock_all() in
> drm_helper_resume_force_mode() itself, while ast driver still takes
> this lock before calling it.  Remove the caller side lock for avoid a
> fatal deadlock.
> 
> Signed-off-by: Takashi Iwai <tiwai@suse.de>

Oops, failed to do the audit correctly. Thanks for catching this.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
>  drivers/gpu/drm/ast/ast_drv.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/ast/ast_drv.c b/drivers/gpu/drm/ast/ast_drv.c
> index 5137f15dba19..27e56dda476d 100644
> --- a/drivers/gpu/drm/ast/ast_drv.c
> +++ b/drivers/gpu/drm/ast/ast_drv.c
> @@ -94,9 +94,7 @@ static int ast_drm_thaw(struct drm_device *dev)
>  	ast_post_gpu(dev);
>  
>  	drm_mode_config_reset(dev);
> -	drm_modeset_lock_all(dev);
>  	drm_helper_resume_force_mode(dev);
> -	drm_modeset_unlock_all(dev);
>  
>  	console_lock();
>  	ast_fbdev_set_suspend(dev, 0);
> -- 
> 1.9.2
>
diff mbox

Patch

diff --git a/drivers/gpu/drm/ast/ast_drv.c b/drivers/gpu/drm/ast/ast_drv.c
index 5137f15dba19..27e56dda476d 100644
--- a/drivers/gpu/drm/ast/ast_drv.c
+++ b/drivers/gpu/drm/ast/ast_drv.c
@@ -94,9 +94,7 @@  static int ast_drm_thaw(struct drm_device *dev)
 	ast_post_gpu(dev);
 
 	drm_mode_config_reset(dev);
-	drm_modeset_lock_all(dev);
 	drm_helper_resume_force_mode(dev);
-	drm_modeset_unlock_all(dev);
 
 	console_lock();
 	ast_fbdev_set_suspend(dev, 0);