Messages in this thread Patch in this message | | | From | Chris Packham <> | Subject | Re: [PATCH] auxdisplay: seg-led-gpio: Convert to platform remove callback returning void | Date | Tue, 9 Apr 2024 20:28:27 +0000 |
| |
On 9/04/24 21:03, Uwe Kleine-König wrote: > 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@pengutronix.de>
Reviewed-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
> --- > drivers/auxdisplay/seg-led-gpio.c | 6 ++---- > > Hello, > > the drivers below of drivers/auxdisplay were already converted to struct > platform_driver::remove_new during the v6.9-rc1 development cycle. This > driver was added for v6.9-rc1 still using the old prototype. > > There are still more drivers to be converted, so there is from my side > no need to get this into v6.9, but the next merge window would be nice. > > Best regards > Uwe > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/auxdisplay/seg-led-gpio.c b/drivers/auxdisplay/seg-led-gpio.c > index 35a8dbb1e9d2..183ab3011cbb 100644 > --- a/drivers/auxdisplay/seg-led-gpio.c > +++ b/drivers/auxdisplay/seg-led-gpio.c > @@ -81,14 +81,12 @@ static int seg_led_probe(struct platform_device *pdev) > return linedisp_register(&priv->linedisp, dev, 1, &seg_led_linedisp_ops); > } > > -static int seg_led_remove(struct platform_device *pdev) > +static void seg_led_remove(struct platform_device *pdev) > { > struct seg_led_priv *priv = platform_get_drvdata(pdev); > > cancel_delayed_work_sync(&priv->work); > linedisp_unregister(&priv->linedisp); > - > - return 0; > } > > static const struct of_device_id seg_led_of_match[] = { > @@ -99,7 +97,7 @@ MODULE_DEVICE_TABLE(of, seg_led_of_match); > > static struct platform_driver seg_led_driver = { > .probe = seg_led_probe, > - .remove = seg_led_remove, > + .remove_new = seg_led_remove, > .driver = { > .name = "seg-led-gpio", > .of_match_table = seg_led_of_match, > > base-commit: 4cece764965020c22cff7665b18a012006359095
| |