Message ID | 20220617013943.851327-1-yangyingliang@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | media: ov7251: add missing clk_disable_unprepare() on error in ov7251_set_power_on() | expand |
On Fri, Jun 17, 2022 at 09:39:43AM +0800, Yang Yingliang wrote: > Add the missing clk_disable_unprepare() before return > from ov7251_set_power_on() in the error handling case. ... > if (ret < 0) { > dev_err(ov7251->dev, "error during global init\n"); > + clk_disable_unprepare(ov7251->xclk); > ov7251_regulators_disable(ov7251); Logically it should go here. Please, read a code above this check. > return ret; > }
Hello On 17/06/2022 02:39, Yang Yingliang wrote: > Add the missing clk_disable_unprepare() before return > from ov7251_set_power_on() in the error handling case. > > Fixes: 9e1d3012cc10 ("media: i2c: Remove .s_power() from ov7251") > Reported-by: Hulk Robot <hulkci@huawei.com> > Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> Thanks for spotting this - with Andy's comment addressed: Reviewed-by: Daniel Scally <djrscally@gmail.com> > --- > drivers/media/i2c/ov7251.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/media/i2c/ov7251.c b/drivers/media/i2c/ov7251.c > index 0e7be15bc20a..40c207d1d7af 100644 > --- a/drivers/media/i2c/ov7251.c > +++ b/drivers/media/i2c/ov7251.c > @@ -934,6 +934,7 @@ static int ov7251_set_power_on(struct device *dev) > ARRAY_SIZE(ov7251_global_init_setting)); > if (ret < 0) { > dev_err(ov7251->dev, "error during global init\n"); > + clk_disable_unprepare(ov7251->xclk); > ov7251_regulators_disable(ov7251); > return ret; > }
Hi, On 2022/6/17 18:20, Andy Shevchenko wrote: > On Fri, Jun 17, 2022 at 09:39:43AM +0800, Yang Yingliang wrote: >> Add the missing clk_disable_unprepare() before return >> from ov7251_set_power_on() in the error handling case. > ... > >> if (ret < 0) { >> dev_err(ov7251->dev, "error during global init\n"); >> + clk_disable_unprepare(ov7251->xclk); >> ov7251_regulators_disable(ov7251); > Logically it should go here. Please, read a code above this check. Do you mean print the error code on error path ? Thanks, Yang > >> return ret; >> }
On Mon, Jun 20, 2022 at 04:48:46PM +0800, Yang Yingliang wrote: > On 2022/6/17 18:20, Andy Shevchenko wrote: > > On Fri, Jun 17, 2022 at 09:39:43AM +0800, Yang Yingliang wrote: ... > > > if (ret < 0) { > > > dev_err(ov7251->dev, "error during global init\n"); > > > + clk_disable_unprepare(ov7251->xclk); > > > ov7251_regulators_disable(ov7251); > > Logically it should go here. Please, read a code above this check. > Do you mean print the error code on error path ? The new code, you added, should be in correct order (reversed in comparison to resource allocation / registration). > > > return ret; > > > }
diff --git a/drivers/media/i2c/ov7251.c b/drivers/media/i2c/ov7251.c index 0e7be15bc20a..40c207d1d7af 100644 --- a/drivers/media/i2c/ov7251.c +++ b/drivers/media/i2c/ov7251.c @@ -934,6 +934,7 @@ static int ov7251_set_power_on(struct device *dev) ARRAY_SIZE(ov7251_global_init_setting)); if (ret < 0) { dev_err(ov7251->dev, "error during global init\n"); + clk_disable_unprepare(ov7251->xclk); ov7251_regulators_disable(ov7251); return ret; }
Add the missing clk_disable_unprepare() before return from ov7251_set_power_on() in the error handling case. Fixes: 9e1d3012cc10 ("media: i2c: Remove .s_power() from ov7251") Reported-by: Hulk Robot <hulkci@huawei.com> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> --- drivers/media/i2c/ov7251.c | 1 + 1 file changed, 1 insertion(+)