On Tue, Oct 12, 2021 at 6:40 PM Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> wrote: > > fbtft_remove_common() is only called with a non-NULL fb_info. (All > callers are in remove callbacks and the matching probe callbacks set > driver data accordingly.) So fbtft_remove_common() always returns zero. > Make it return void instead which makes it easier to see in the callers > that there is no error to handle. > > Also the return value of platform and spi remove callbacks is ignored > anyway and not freeing resources in .remove() is a bad idea. Acked-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx> > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> > --- > drivers/staging/fbtft/fbtft-core.c | 8 +------- > drivers/staging/fbtft/fbtft.h | 8 +++++--- > 2 files changed, 6 insertions(+), 10 deletions(-) > > diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c > index ed992ca605eb..9c9eab1182a6 100644 > --- a/drivers/staging/fbtft/fbtft-core.c > +++ b/drivers/staging/fbtft/fbtft-core.c > @@ -1318,23 +1318,17 @@ EXPORT_SYMBOL(fbtft_probe_common); > * @info: Framebuffer > * > * Unregisters and releases the framebuffer > - * > - * Return: 0 if successful, negative if error > */ > -int fbtft_remove_common(struct device *dev, struct fb_info *info) > +void fbtft_remove_common(struct device *dev, struct fb_info *info) > { > struct fbtft_par *par; > > - if (!info) > - return -EINVAL; > par = info->par; > if (par) > fbtft_par_dbg(DEBUG_DRIVER_INIT_FUNCTIONS, par, > "%s()\n", __func__); > fbtft_unregister_framebuffer(info); > fbtft_framebuffer_release(info); > - > - return 0; > } > EXPORT_SYMBOL(fbtft_remove_common); > > diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h > index 76f8c090a837..6869f3603b0e 100644 > --- a/drivers/staging/fbtft/fbtft.h > +++ b/drivers/staging/fbtft/fbtft.h > @@ -252,7 +252,7 @@ void fbtft_unregister_backlight(struct fbtft_par *par); > int fbtft_init_display(struct fbtft_par *par); > int fbtft_probe_common(struct fbtft_display *display, struct spi_device *sdev, > struct platform_device *pdev); > -int fbtft_remove_common(struct device *dev, struct fb_info *info); > +void fbtft_remove_common(struct device *dev, struct fb_info *info); > > /* fbtft-io.c */ > int fbtft_write_spi(struct fbtft_par *par, void *buf, size_t len); > @@ -283,7 +283,8 @@ static int fbtft_driver_remove_spi(struct spi_device *spi) \ > { \ > struct fb_info *info = spi_get_drvdata(spi); \ > \ > - return fbtft_remove_common(&spi->dev, info); \ > + fbtft_remove_common(&spi->dev, info); \ > + return 0; \ > } \ > \ > static int fbtft_driver_probe_pdev(struct platform_device *pdev) \ > @@ -295,7 +296,8 @@ static int fbtft_driver_remove_pdev(struct platform_device *pdev) \ > { \ > struct fb_info *info = platform_get_drvdata(pdev); \ > \ > - return fbtft_remove_common(&pdev->dev, info); \ > + fbtft_remove_common(&pdev->dev, info); \ > + return 0; \ > } \ > \ > static const struct of_device_id dt_ids[] = { \ > -- > 2.30.2 > -- With Best Regards, Andy Shevchenko