Commit c404af95 authored by Janusz Krzysztofik's avatar Janusz Krzysztofik Committed by Mauro Carvalho Chehab
Browse files

media: ov6650: Fix control handler not freed on init error



Since commit afd9690c ("[media] ov6650: convert to the control
framework"), if an error occurs during initialization of a control
handler, resources possibly allocated to the handler are not freed
before device initialiaton is aborted.  Fix it.

Fixes: afd9690c ("[media] ov6650: convert to the control framework")
Signed-off-by: default avatarJanusz Krzysztofik <jmkrzyszt@gmail.com>
Signed-off-by: default avatarSakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent 1b23ee9c
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -989,8 +989,10 @@ static int ov6650_probe(struct i2c_client *client,
			V4L2_CID_GAMMA, 0, 0xff, 1, 0x12);

	priv->subdev.ctrl_handler = &priv->hdl;
	if (priv->hdl.error)
		return priv->hdl.error;
	if (priv->hdl.error) {
		ret = priv->hdl.error;
		goto ectlhdlfree;
	}

	v4l2_ctrl_auto_cluster(2, &priv->autogain, 0, true);
	v4l2_ctrl_auto_cluster(3, &priv->autowb, 0, true);
@@ -1008,7 +1010,9 @@ static int ov6650_probe(struct i2c_client *client,
	priv->subdev.internal_ops = &ov6650_internal_ops;

	ret = v4l2_async_register_subdev(&priv->subdev);
	if (ret)
	if (!ret)
		return 0;
ectlhdlfree:
	v4l2_ctrl_handler_free(&priv->hdl);

	return ret;