On Sat 14 Oct 2023 at 00:19, Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> 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 (mostly) ignored > 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. > > meson_card_remove() returned zero unconditionally. Make it return void > instead and convert all users to struct platform_device::remove_new(). > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> Reviewed-by: Jerome Brunet <jbrunet@xxxxxxxxxxxx> > --- > sound/soc/meson/axg-card.c | 2 +- > sound/soc/meson/gx-card.c | 2 +- > sound/soc/meson/meson-card-utils.c | 4 +--- > sound/soc/meson/meson-card.h | 2 +- > 4 files changed, 4 insertions(+), 6 deletions(-) > > diff --git a/sound/soc/meson/axg-card.c b/sound/soc/meson/axg-card.c > index 18b16274449e..3180aa4d3a15 100644 > --- a/sound/soc/meson/axg-card.c > +++ b/sound/soc/meson/axg-card.c > @@ -360,7 +360,7 @@ MODULE_DEVICE_TABLE(of, axg_card_of_match); > > static struct platform_driver axg_card_pdrv = { > .probe = meson_card_probe, > - .remove = meson_card_remove, > + .remove_new = meson_card_remove, > .driver = { > .name = "axg-sound-card", > .of_match_table = axg_card_of_match, > diff --git a/sound/soc/meson/gx-card.c b/sound/soc/meson/gx-card.c > index 01beac1d927f..f1539e542638 100644 > --- a/sound/soc/meson/gx-card.c > +++ b/sound/soc/meson/gx-card.c > @@ -130,7 +130,7 @@ MODULE_DEVICE_TABLE(of, gx_card_of_match); > > static struct platform_driver gx_card_pdrv = { > .probe = meson_card_probe, > - .remove = meson_card_remove, > + .remove_new = meson_card_remove, > .driver = { > .name = "gx-sound-card", > .of_match_table = gx_card_of_match, > diff --git a/sound/soc/meson/meson-card-utils.c b/sound/soc/meson/meson-card-utils.c > index c81099218597..ed6c7e2f609c 100644 > --- a/sound/soc/meson/meson-card-utils.c > +++ b/sound/soc/meson/meson-card-utils.c > @@ -327,13 +327,11 @@ int meson_card_probe(struct platform_device *pdev) > } > EXPORT_SYMBOL_GPL(meson_card_probe); > > -int meson_card_remove(struct platform_device *pdev) > +void meson_card_remove(struct platform_device *pdev) > { > struct meson_card *priv = platform_get_drvdata(pdev); > > meson_card_clean_references(priv); > - > - return 0; > } > EXPORT_SYMBOL_GPL(meson_card_remove); > > diff --git a/sound/soc/meson/meson-card.h b/sound/soc/meson/meson-card.h > index a5374324a189..a0d693e4f460 100644 > --- a/sound/soc/meson/meson-card.h > +++ b/sound/soc/meson/meson-card.h > @@ -49,6 +49,6 @@ int meson_card_set_fe_link(struct snd_soc_card *card, > bool is_playback); > > int meson_card_probe(struct platform_device *pdev); > -int meson_card_remove(struct platform_device *pdev); > +void meson_card_remove(struct platform_device *pdev); > > #endif /* _MESON_SND_CARD_H */