On 3/10/20 3:30 PM, Chuhong Yuan wrote: > 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 <hslester96@xxxxxxxxx> > --- > 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) The new function can be made void as it always returns 0. Also please use the standard CodingStyle while at it: void __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) Please use the standard CodingStyle while at it: static int s1d13xxxfb_remove(struct platform_device *pdev) > +{ > + struct fb_info *info = platform_get_drvdata(pdev); > + > + if (info) 'info' check is superfluous in the ->remove only code-path. > + 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; > > } > Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel