Message ID | 20230823194202.2280957-1-harshit.m.mogalapalli@oracle.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | [next] i2c: qcom-cci: Fix error checking in cci_probe() | expand |
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>
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
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!
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
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 >
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
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 */
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(-)