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