[PATCH 5/7] ASoC: meson: Make meson_card_remove() return void

Jerome Brunet jbrunet at baylibre.com
Tue Oct 17 07:40:41 PDT 2023


On Sat 14 Oct 2023 at 00:19, Uwe Kleine-König <u.kleine-koenig at pengutronix.de> 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 at pengutronix.de>

Reviewed-by: Jerome Brunet <jbrunet at baylibre.com>

> ---
>  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 */




More information about the linux-arm-kernel mailing list