From: Sakari Ailus Date: Fri, 31 May 2019 20:12:49 +0000 (-0400) Subject: media: mt9m111: Fix error handling in mt9m111_power_on X-Git-Tag: Ubuntu-5.10.0-12.13~5032^2~77 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=04bc4f6631f7e47a9fe47ea6c0794ed56d9b3cf8;p=mirror_ubuntu-hirsute-kernel.git media: mt9m111: Fix error handling in mt9m111_power_on The mt9m111_power_on function did not properly clean up whenever it encountered an error. Do that now. Signed-off-by: Sakari Ailus Reviewed-by: Marco Felsch Signed-off-by: Mauro Carvalho Chehab --- diff --git a/drivers/media/i2c/mt9m111.c b/drivers/media/i2c/mt9m111.c index bb19f8c346cb..593ebe5e2cb6 100644 --- a/drivers/media/i2c/mt9m111.c +++ b/drivers/media/i2c/mt9m111.c @@ -986,13 +986,21 @@ static int mt9m111_power_on(struct mt9m111 *mt9m111) ret = regulator_enable(mt9m111->regulator); if (ret < 0) - return ret; + goto out_clk_disable; ret = mt9m111_resume(mt9m111); - if (ret < 0) { - dev_err(&client->dev, "Failed to resume the sensor: %d\n", ret); - v4l2_clk_disable(mt9m111->clk); - } + if (ret < 0) + goto out_regulator_disable; + + return 0; + +out_regulator_disable: + regulator_disable(mt9m111->regulator); + +out_clk_disable: + v4l2_clk_disable(mt9m111->clk); + + dev_err(&client->dev, "Failed to resume the sensor: %d\n", ret); return ret; }