diff mbox series

ASoC: rsnd: Add check for rsnd_mod_power_on

Message ID 20220901071127.3448059-1-jiasheng@iscas.ac.cn (mailing list archive)
State Superseded
Headers show
Series ASoC: rsnd: Add check for rsnd_mod_power_on | expand

Commit Message

Jiasheng Jiang Sept. 1, 2022, 7:11 a.m. UTC
As rsnd_mod_power_on() can return negative numbers,
it should be better to check the return value and
deal with the exception.

Fixes: e7d850dd10f4 ("ASoC: rsnd: use mod base common method on SSI-parent")
Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
---
 sound/soc/sh/rcar/ssi.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Kuninori Morimoto Sept. 1, 2022, 11:02 p.m. UTC | #1
Hi

> As rsnd_mod_power_on() can return negative numbers,
> it should be better to check the return value and
> deal with the exception.
> 
> Fixes: e7d850dd10f4 ("ASoC: rsnd: use mod base common method on SSI-parent")
> Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
> ---
(snip)
> --- a/sound/soc/sh/rcar/ssi.c
> +++ b/sound/soc/sh/rcar/ssi.c
> @@ -480,7 +480,9 @@ static int rsnd_ssi_init(struct rsnd_mod *mod,
>  
>  	ssi->usrcnt++;
>  
> -	rsnd_mod_power_on(mod);
> +	ret = rsnd_mod_power_on(mod);
> +	if (ret < 0)
> +		return ret;

This looks good to me, but, the code which is using rsnd_mod_power_on()
and not checking the return value is not only ssi.c.

	> grep rsnd_mod_power_on ./sound/soc/sh/rcar/*.c                                                              [~/Mail/tmp]
	sound/soc/sh/rcar/ctu.c:      rsnd_mod_power_on(mod);
	sound/soc/sh/rcar/dvc.c:      rsnd_mod_power_on(mod);
	sound/soc/sh/rcar/mix.c:      rsnd_mod_power_on(mod);
	sound/soc/sh/rcar/src.c:      rsnd_mod_power_on(mod);
	sound/soc/sh/rcar/ssi.c:      rsnd_mod_power_on(mod);

Thank you for your help !!

Best regards
---
Kuninori Morimoto
diff mbox series

Patch

diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c
index 43c5e27dc5c8..7ade6c5ed96f 100644
--- a/sound/soc/sh/rcar/ssi.c
+++ b/sound/soc/sh/rcar/ssi.c
@@ -480,7 +480,9 @@  static int rsnd_ssi_init(struct rsnd_mod *mod,
 
 	ssi->usrcnt++;
 
-	rsnd_mod_power_on(mod);
+	ret = rsnd_mod_power_on(mod);
+	if (ret < 0)
+		return ret;
 
 	rsnd_ssi_config_init(mod, io);