mirror of https://gitee.com/openkylin/linux.git
media: ov6650: Fix control handler not freed on init error
Since commitafd9690c72
("[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:afd9690c72
("[media] ov6650: convert to the control framework") Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
1b23ee9ccf
commit
c404af950d
|
@ -989,8 +989,10 @@ static int ov6650_probe(struct i2c_client *client,
|
||||||
V4L2_CID_GAMMA, 0, 0xff, 1, 0x12);
|
V4L2_CID_GAMMA, 0, 0xff, 1, 0x12);
|
||||||
|
|
||||||
priv->subdev.ctrl_handler = &priv->hdl;
|
priv->subdev.ctrl_handler = &priv->hdl;
|
||||||
if (priv->hdl.error)
|
if (priv->hdl.error) {
|
||||||
return priv->hdl.error;
|
ret = priv->hdl.error;
|
||||||
|
goto ectlhdlfree;
|
||||||
|
}
|
||||||
|
|
||||||
v4l2_ctrl_auto_cluster(2, &priv->autogain, 0, true);
|
v4l2_ctrl_auto_cluster(2, &priv->autogain, 0, true);
|
||||||
v4l2_ctrl_auto_cluster(3, &priv->autowb, 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;
|
priv->subdev.internal_ops = &ov6650_internal_ops;
|
||||||
|
|
||||||
ret = v4l2_async_register_subdev(&priv->subdev);
|
ret = v4l2_async_register_subdev(&priv->subdev);
|
||||||
if (ret)
|
if (!ret)
|
||||||
|
return 0;
|
||||||
|
ectlhdlfree:
|
||||||
v4l2_ctrl_handler_free(&priv->hdl);
|
v4l2_ctrl_handler_free(&priv->hdl);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in New Issue