[v2,2/2] drm/ast: Fix connector leak during driver unload

Submitted by Sam Bobroff on Dec. 3, 2018, 12:53 a.m.

Details

Message ID 1e613f3c630c7bbc72e04a44b178259b9164d2f6.1543798395.git.sbobroff@linux.ibm.com
State Accepted
Commit e594a5e349ddbfdaca1951bb3f8d72f3f1660d73
Headers show
Series "Two AST driver fixes" ( rev: 2 ) in DRI devel

Not browsing as part of any series.

Commit Message

Sam Bobroff Dec. 3, 2018, 12:53 a.m.
When unloading the ast driver, a warning message is printed by
drm_mode_config_cleanup() because a reference is still held to one of
the drm_connector structs.

Correct this by calling drm_crtc_force_disable_all() in
ast_fbdev_destroy().

Signed-off-by: Sam Bobroff <sbobroff@linux.ibm.com>
---
v2 * Changed to use drm_crtc_force_disable_all().

 drivers/gpu/drm/ast/ast_fb.c | 1 +
 1 file changed, 1 insertion(+)

Patch hide | download patch | download mbox

diff --git a/drivers/gpu/drm/ast/ast_fb.c b/drivers/gpu/drm/ast/ast_fb.c
index 0cd827e11fa2..de26df0c6044 100644
--- a/drivers/gpu/drm/ast/ast_fb.c
+++ b/drivers/gpu/drm/ast/ast_fb.c
@@ -263,6 +263,7 @@  static void ast_fbdev_destroy(struct drm_device *dev,
 {
 	struct ast_framebuffer *afb = &afbdev->afb;
 
+	drm_crtc_force_disable_all(dev);
 	drm_fb_helper_unregister_fbi(&afbdev->helper);
 
 	if (afb->obj) {

Comments

On Mon, Dec 03, 2018 at 11:53:21AM +1100, Sam Bobroff wrote:
> When unloading the ast driver, a warning message is printed by
> drm_mode_config_cleanup() because a reference is still held to one of
> the drm_connector structs.
> 
> Correct this by calling drm_crtc_force_disable_all() in
> ast_fbdev_destroy().
> 
> Signed-off-by: Sam Bobroff <sbobroff@linux.ibm.com>
> ---
> v2 * Changed to use drm_crtc_force_disable_all().

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

> 
>  drivers/gpu/drm/ast/ast_fb.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpu/drm/ast/ast_fb.c b/drivers/gpu/drm/ast/ast_fb.c
> index 0cd827e11fa2..de26df0c6044 100644
> --- a/drivers/gpu/drm/ast/ast_fb.c
> +++ b/drivers/gpu/drm/ast/ast_fb.c
> @@ -263,6 +263,7 @@ static void ast_fbdev_destroy(struct drm_device *dev,
>  {
>  	struct ast_framebuffer *afb = &afbdev->afb;
>  
> +	drm_crtc_force_disable_all(dev);
>  	drm_fb_helper_unregister_fbi(&afbdev->helper);
>  
>  	if (afb->obj) {
> -- 
> 2.19.0.2.gcad72f5712
>