media: i2c: ov9640: fix missing error handling in probe
authorPetr Cvek <petrcvekcz@gmail.com>
Thu, 13 Dec 2018 15:39:19 +0000 (10:39 -0500)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Wed, 16 Jan 2019 18:32:09 +0000 (13:32 -0500)
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 <petrcvekcz@gmail.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/i2c/ov9640.c

index 9739fa8..c183273 100644 (file)
@@ -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;