[PATCH next] i2c: qcom-cci: Fix error checking in cci_probe()

Harshit Mogalapalli posted 1 patch 2 years, 3 months ago
drivers/i2c/busses/i2c-qcom-cci.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
[PATCH next] i2c: qcom-cci: Fix error checking in cci_probe()
Posted by Harshit Mogalapalli 2 years, 3 months ago
devm_clk_bulk_get_all() can return zero when no clocks are obtained.
Passing zero to dev_err_probe() is a success which is incorrect.

Fixes: 605efbf43813 ("i2c: qcom-cci: Use dev_err_probe in probe function")
Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
---
Only compile tested, found by static analysis with smatch.

https://lore.kernel.org/all/CAA8EJprTOjbOy7N5+8NiJaNNhK+_btdUUFcpHKPkMuCZj5umMA@mail.gmail.com/
^^ I reported initially here, Dmitry suggested we need to fix it in a
different patch.

the Fixes commit used above pointed this bug, but the real fixes tag is this:
Fixes: e517526195de ("i2c: Add Qualcomm CCI I2C driver")
---
 drivers/i2c/busses/i2c-qcom-cci.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/i2c/busses/i2c-qcom-cci.c b/drivers/i2c/busses/i2c-qcom-cci.c
index cf13abec05f1..414882c57d7f 100644
--- a/drivers/i2c/busses/i2c-qcom-cci.c
+++ b/drivers/i2c/busses/i2c-qcom-cci.c
@@ -588,8 +588,10 @@ static int cci_probe(struct platform_device *pdev)
 	/* Clocks */
 
 	ret = devm_clk_bulk_get_all(dev, &cci->clocks);
-	if (ret < 1)
+	if (ret < 0)
 		return dev_err_probe(dev, ret, "failed to get clocks\n");
+	else if (!ret)
+		return dev_err_probe(dev, -EINVAL, "not enough clocks in DT\n");
 	cci->nclocks = ret;
 
 	/* Retrieve CCI clock rate */
-- 
2.39.3
Re: [PATCH next] i2c: qcom-cci: Fix error checking in cci_probe()
Posted by Dan Carpenter 2 years, 3 months ago
On Wed, Aug 23, 2023 at 12:42:02PM -0700, Harshit Mogalapalli wrote:
> devm_clk_bulk_get_all() can return zero when no clocks are obtained.
> Passing zero to dev_err_probe() is a success which is incorrect.
> 
> Fixes: 605efbf43813 ("i2c: qcom-cci: Use dev_err_probe in probe function")
> Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
> ---
> Only compile tested, found by static analysis with smatch.
> 
> https://lore.kernel.org/all/CAA8EJprTOjbOy7N5+8NiJaNNhK+_btdUUFcpHKPkMuCZj5umMA@mail.gmail.com/
> ^^ I reported initially here, Dmitry suggested we need to fix it in a
> different patch.
> 
> the Fixes commit used above pointed this bug, but the real fixes tag is this:
> Fixes: e517526195de ("i2c: Add Qualcomm CCI I2C driver")

This has already been applied but, for future reference, you should have
gone with the real fixes tag instead of where the static checker started
complaining.

regards,
dan carpenter
Re: [PATCH next] i2c: qcom-cci: Fix error checking in cci_probe()
Posted by Andi Shyti 2 years, 3 months ago
Hi Dan,

On Tue, Sep 05, 2023 at 12:10:31PM +0300, Dan Carpenter wrote:
> On Wed, Aug 23, 2023 at 12:42:02PM -0700, Harshit Mogalapalli wrote:
> > devm_clk_bulk_get_all() can return zero when no clocks are obtained.
> > Passing zero to dev_err_probe() is a success which is incorrect.
> > 
> > Fixes: 605efbf43813 ("i2c: qcom-cci: Use dev_err_probe in probe function")
> > Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
> > ---
> > Only compile tested, found by static analysis with smatch.
> > 
> > https://lore.kernel.org/all/CAA8EJprTOjbOy7N5+8NiJaNNhK+_btdUUFcpHKPkMuCZj5umMA@mail.gmail.com/
> > ^^ I reported initially here, Dmitry suggested we need to fix it in a
> > different patch.
> > 
> > the Fixes commit used above pointed this bug, but the real fixes tag is this:
> > Fixes: e517526195de ("i2c: Add Qualcomm CCI I2C driver")
> 
> This has already been applied but, for future reference, you should have
> gone with the real fixes tag instead of where the static checker started
> complaining.

yeah... sorry... I normally check all the "Fixes:" tags, but
sometimes, out of sheer laziness, I trust the commit.

Andi
Re: [PATCH next] i2c: qcom-cci: Fix error checking in cci_probe()
Posted by Harshit Mogalapalli 2 years, 3 months ago
Hi,

On 05/09/23 2:40 pm, Dan Carpenter wrote:
> On Wed, Aug 23, 2023 at 12:42:02PM -0700, Harshit Mogalapalli wrote:
>> devm_clk_bulk_get_all() can return zero when no clocks are obtained.
>> Passing zero to dev_err_probe() is a success which is incorrect.
>>
>> Fixes: 605efbf43813 ("i2c: qcom-cci: Use dev_err_probe in probe function")
>> Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
>> ---
>> Only compile tested, found by static analysis with smatch.
>>
>> https://lore.kernel.org/all/CAA8EJprTOjbOy7N5+8NiJaNNhK+_btdUUFcpHKPkMuCZj5umMA@mail.gmail.com/
>> ^^ I reported initially here, Dmitry suggested we need to fix it in a
>> different patch.
>>
>> the Fixes commit used above pointed this bug, but the real fixes tag is this:
>> Fixes: e517526195de ("i2c: Add Qualcomm CCI I2C driver")
> 
> This has already been applied but, for future reference, you should have
> gone with the real fixes tag instead of where the static checker started
> complaining.
> 

Thank you for sharing this.
Will use the real fixes from next time.

Regards,
Harshit

> regards,
> dan carpenter
>
Re: [PATCH next] i2c: qcom-cci: Fix error checking in cci_probe()
Posted by Wolfram Sang 2 years, 3 months ago
On Wed, Aug 23, 2023 at 12:42:02PM -0700, Harshit Mogalapalli wrote:
> devm_clk_bulk_get_all() can return zero when no clocks are obtained.
> Passing zero to dev_err_probe() is a success which is incorrect.
> 
> Fixes: 605efbf43813 ("i2c: qcom-cci: Use dev_err_probe in probe function")
> Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>

Applied to for-next, thanks!

Re: [PATCH next] i2c: qcom-cci: Fix error checking in cci_probe()
Posted by Andi Shyti 2 years, 3 months ago
Hi Harshit,

On Wed, Aug 23, 2023 at 12:42:02PM -0700, Harshit Mogalapalli wrote:
> devm_clk_bulk_get_all() can return zero when no clocks are obtained.
> Passing zero to dev_err_probe() is a success which is incorrect.
> 
> Fixes: 605efbf43813 ("i2c: qcom-cci: Use dev_err_probe in probe function")
> Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>

Reviewed-by: Andi Shyti <andi.shyti@kernel.org> 

Andi
Re: [PATCH next] i2c: qcom-cci: Fix error checking in cci_probe()
Posted by Bryan O'Donoghue 2 years, 3 months ago
On 23/08/2023 20:42, Harshit Mogalapalli wrote:
> devm_clk_bulk_get_all() can return zero when no clocks are obtained.
> Passing zero to dev_err_probe() is a success which is incorrect.
> 
> Fixes: 605efbf43813 ("i2c: qcom-cci: Use dev_err_probe in probe function")
> Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
> ---
> Only compile tested, found by static analysis with smatch.
> 
> https://lore.kernel.org/all/CAA8EJprTOjbOy7N5+8NiJaNNhK+_btdUUFcpHKPkMuCZj5umMA@mail.gmail.com/
> ^^ I reported initially here, Dmitry suggested we need to fix it in a
> different patch.
> 
> the Fixes commit used above pointed this bug, but the real fixes tag is this:
> Fixes: e517526195de ("i2c: Add Qualcomm CCI I2C driver")
> ---
>   drivers/i2c/busses/i2c-qcom-cci.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/i2c/busses/i2c-qcom-cci.c b/drivers/i2c/busses/i2c-qcom-cci.c
> index cf13abec05f1..414882c57d7f 100644
> --- a/drivers/i2c/busses/i2c-qcom-cci.c
> +++ b/drivers/i2c/busses/i2c-qcom-cci.c
> @@ -588,8 +588,10 @@ static int cci_probe(struct platform_device *pdev)
>   	/* Clocks */
>   
>   	ret = devm_clk_bulk_get_all(dev, &cci->clocks);
> -	if (ret < 1)
> +	if (ret < 0)
>   		return dev_err_probe(dev, ret, "failed to get clocks\n");
> +	else if (!ret)
> +		return dev_err_probe(dev, -EINVAL, "not enough clocks in DT\n");
>   	cci->nclocks = ret;
>   
>   	/* Retrieve CCI clock rate */
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>