From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chuhong Yuan Date: Tue, 10 Mar 2020 14:30:33 +0000 Subject: [PATCH v2] fbdev: s1d13xxxfb: add missed unregister_framebuffer in remove Message-Id: <20200310143033.5098-1-hslester96@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: linux-fbdev@vger.kernel.org, Bartlomiej Zolnierkiewicz , Chuhong Yuan , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Kristoffer Ericson The driver calls register_framebuffer() in probe but does not call unregister_framebuffer() in remove. Rename current remove to __s1d13xxxfb_remove() for error handler. Then add a new remove to call unregister_framebuffer(). Signed-off-by: Chuhong Yuan --- Changes in v2: - Rename the existing remove and add a new one to ensure the correctness of error handler in probe. drivers/video/fbdev/s1d13xxxfb.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/drivers/video/fbdev/s1d13xxxfb.c b/drivers/video/fbdev/s1d13xxxfb.c index 8048499e398d..bafea3d09bba 100644 --- a/drivers/video/fbdev/s1d13xxxfb.c +++ b/drivers/video/fbdev/s1d13xxxfb.c @@ -721,9 +721,8 @@ static void s1d13xxxfb_fetch_hw_state(struct fb_info *info) xres, yres, xres_virtual, yres_virtual, is_color, is_dual, is_tft); } - static int -s1d13xxxfb_remove(struct platform_device *pdev) +__s1d13xxxfb_remove(struct platform_device *pdev) { struct fb_info *info = platform_get_drvdata(pdev); struct s1d13xxxfb_par *par = NULL; @@ -752,6 +751,18 @@ s1d13xxxfb_remove(struct platform_device *pdev) return 0; } +static int +s1d13xxxfb_remove(struct platform_device *pdev) +{ + struct fb_info *info = platform_get_drvdata(pdev); + + if (info) + unregister_framebuffer(info); + + return __s1d13xxxfb_remove(pdev); +} + + static int s1d13xxxfb_probe(struct platform_device *pdev) { struct s1d13xxxfb_par *default_par; @@ -895,7 +906,7 @@ static int s1d13xxxfb_probe(struct platform_device *pdev) return 0; bail: - s1d13xxxfb_remove(pdev); + __s1d13xxxfb_remove(pdev); return ret; } -- 2.25.1