Re: [PATCH 6.6 011/121] thermal: bcm2835: Convert to platform remove callback returning void

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Aug 08, 2024 at 08:11:04AM +0200, Uwe Kleine-König wrote:
> Hello Greg,
> 
> On Wed, Aug 07, 2024 at 04:59:03PM +0200, Greg Kroah-Hartman wrote:
> > 6.6-stable review patch.  If anyone has any objections, please let me know.
> > 
> > ------------------
> > 
> > From: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
> > 
> > [ Upstream commit f29ecd3748a28d0b52512afc81b3c13fd4a00c9b ]
> > 
> > The .remove() callback for a platform driver returns an int which makes
> > many driver authors wrongly assume it's possible to do error handling by
> > returning an error code. However the value returned is ignored (apart
> > from emitting a warning) and this typically results in resource leaks.
> > 
> > To improve here there is a quest to make the remove callback return
> > void. In the first step of this quest all drivers are converted to
> > .remove_new(), which already returns void. Eventually after all drivers
> > are converted, .remove_new() will be renamed to .remove().
> > 
> > Trivially convert this driver from always returning zero in the remove
> > callback to the void returning variant.
> > 
> > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx>
> > Acked-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
> > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
> > Stable-dep-of: e90c369cc2ff ("thermal/drivers/broadcom: Fix race between removal and clock disable")
> > Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
> > ---
> >  drivers/thermal/broadcom/bcm2835_thermal.c | 6 ++----
> >  1 file changed, 2 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/thermal/broadcom/bcm2835_thermal.c b/drivers/thermal/broadcom/bcm2835_thermal.c
> > index 3acc9288b3105..5c1cebe075801 100644
> > --- a/drivers/thermal/broadcom/bcm2835_thermal.c
> > +++ b/drivers/thermal/broadcom/bcm2835_thermal.c
> > @@ -282,19 +282,17 @@ static int bcm2835_thermal_probe(struct platform_device *pdev)
> >  	return err;
> >  }
> >  
> > -static int bcm2835_thermal_remove(struct platform_device *pdev)
> > +static void bcm2835_thermal_remove(struct platform_device *pdev)
> >  {
> >  	struct bcm2835_thermal_data *data = platform_get_drvdata(pdev);
> >  
> >  	debugfs_remove_recursive(data->debugfsdir);
> >  	clk_disable_unprepare(data->clk);
> > -
> > -	return 0;
> >  }
> >  
> >  static struct platform_driver bcm2835_thermal_driver = {
> >  	.probe = bcm2835_thermal_probe,
> > -	.remove = bcm2835_thermal_remove,
> > +	.remove_new = bcm2835_thermal_remove,
> >  	.driver = {
> >  		.name = "bcm2835_thermal",
> >  		.of_match_table = bcm2835_thermal_of_match_table,
> 
> While I'm confident this patch not to break anything (there are so many
> of this type in mainline now and none regressed), it should be also easy
> to port the follow up patches onto 6.6.x without this change.
> 
> No strong opinion and maybe being able to cleanly cherry pick later
> changes is important enough to keep this conversion? Otherwise I'd tend
> to drop this patch.

Thanks for the review, I'll leave it in as it made it simpler for the
next commit.

thanks,

greg k-h




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux