2021-12-17 03:14:18

by Jiasheng Jiang

[permalink] [raw]
Subject: [PATCH] ASoC: wm8962: potential use of error pointer

The return value of devm_clk_get() needs to be checked.
To avoid use of error pointer in case of the failure of alloc.

Fixes: d74e9e7090ae ("ASoC: wm8962: Add device tree binding")
Signed-off-by: Jiasheng Jiang <[email protected]>
---
sound/soc/codecs/wm8962.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c
index 34080f497584..66693bf17763 100644
--- a/sound/soc/codecs/wm8962.c
+++ b/sound/soc/codecs/wm8962.c
@@ -3540,6 +3540,8 @@ static int wm8962_set_pdata_from_of(struct i2c_client *i2c,
}

pdata->mclk = devm_clk_get(&i2c->dev, NULL);
+ if (IS_ERR(pdata->mclk))
+ return -ENOMEM;

return 0;
}
--
2.25.1



2021-12-17 09:42:58

by Cezary Rojewski

[permalink] [raw]
Subject: Re: [PATCH] ASoC: wm8962: potential use of error pointer

On 2021-12-17 4:13 AM, Jiasheng Jiang wrote:
> The return value of devm_clk_get() needs to be checked.
> To avoid use of error pointer in case of the failure of alloc.
>
> Fixes: d74e9e7090ae ("ASoC: wm8962: Add device tree binding")
> Signed-off-by: Jiasheng Jiang <[email protected]>
> ---
> sound/soc/codecs/wm8962.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c
> index 34080f497584..66693bf17763 100644
> --- a/sound/soc/codecs/wm8962.c
> +++ b/sound/soc/codecs/wm8962.c
> @@ -3540,6 +3540,8 @@ static int wm8962_set_pdata_from_of(struct i2c_client *i2c,
> }
>
> pdata->mclk = devm_clk_get(&i2c->dev, NULL);
> + if (IS_ERR(pdata->mclk))
> + return -ENOMEM;
>
> return 0;
> }
>

Correct me if I'm wrong, but -ENOMEM is not the only error code that
could get returned by clk_get() (which is internally called by
devm_clk_get()). Is there a specific reason for ignoring the return value?


Regards,
Czarek

2021-12-17 09:47:15

by Charles Keepax

[permalink] [raw]
Subject: Re: [PATCH] ASoC: wm8962: potential use of error pointer

On Fri, Dec 17, 2021 at 11:13:33AM +0800, Jiasheng Jiang wrote:
> The return value of devm_clk_get() needs to be checked.
> To avoid use of error pointer in case of the failure of alloc.
>
> Fixes: d74e9e7090ae ("ASoC: wm8962: Add device tree binding")
> Signed-off-by: Jiasheng Jiang <[email protected]>
> ---
> sound/soc/codecs/wm8962.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c
> index 34080f497584..66693bf17763 100644
> --- a/sound/soc/codecs/wm8962.c
> +++ b/sound/soc/codecs/wm8962.c
> @@ -3540,6 +3540,8 @@ static int wm8962_set_pdata_from_of(struct i2c_client *i2c,
> }
>
> pdata->mclk = devm_clk_get(&i2c->dev, NULL);
> + if (IS_ERR(pdata->mclk))
> + return -ENOMEM;

The value was checked later, so the code was mostly fine and what
bugs there were have already been fixed:

044c11401443 ("ASoC: wm8962: Convert to devm_clk_get_optional")

Thanks,
Charles