From ffe305d261f4d96eb851f1cad860d845edfaef25 Mon Sep 17 00:00:00 2001 From: Petr Cvek Date: Thu, 13 Dec 2018 10:39:19 -0500 Subject: media: i2c: ov9640: fix missing error handling in probe Control handlers registration lacked error path with v4l2_ctrl_handler_free() call. Fix it by using goto to alread existing v4l2_ctrl_handler_free() call. Signed-off-by: Petr Cvek Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab --- drivers/media/i2c/ov9640.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'drivers/media/i2c/ov9640.c') diff --git a/drivers/media/i2c/ov9640.c b/drivers/media/i2c/ov9640.c index 9739fa8d433a..c183273fd332 100644 --- a/drivers/media/i2c/ov9640.c +++ b/drivers/media/i2c/ov9640.c @@ -710,14 +710,18 @@ static int ov9640_probe(struct i2c_client *client, V4L2_CID_VFLIP, 0, 1, 1, 0); v4l2_ctrl_new_std(&priv->hdl, &ov9640_ctrl_ops, V4L2_CID_HFLIP, 0, 1, 1, 0); + + if (priv->hdl.error) { + ret = priv->hdl.error; + goto ectrlinit; + } + priv->subdev.ctrl_handler = &priv->hdl; - if (priv->hdl.error) - return priv->hdl.error; priv->clk = v4l2_clk_get(&client->dev, "mclk"); if (IS_ERR(priv->clk)) { ret = PTR_ERR(priv->clk); - goto eclkget; + goto ectrlinit; } ret = ov9640_video_probe(client); @@ -733,7 +737,7 @@ static int ov9640_probe(struct i2c_client *client, eprobe: v4l2_clk_put(priv->clk); -eclkget: +ectrlinit: v4l2_ctrl_handler_free(&priv->hdl); return ret; -- cgit v1.2.3