mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 19:51:31 -04:00
media: ov6650: Fix control handler not freed on init error
[ Upstream commit c404af950d14b71bfbf574a752b6c29d726baaba ] 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 <[email protected]> Signed-off-by: Sakari Ailus <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]> Signed-off-by: Sasha Levin <[email protected]>
This commit is contained in:
parent
bad7c2c5db
commit
e88e1d28be
1 changed files with 8 additions and 4 deletions
|
|
@ -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,8 +1010,10 @@ static int ov6650_probe(struct i2c_client *client,
|
|||
priv->subdev.internal_ops = &ov6650_internal_ops;
|
||||
|
||||
ret = v4l2_async_register_subdev(&priv->subdev);
|
||||
if (ret)
|
||||
v4l2_ctrl_handler_free(&priv->hdl);
|
||||
if (!ret)
|
||||
return 0;
|
||||
ectlhdlfree:
|
||||
v4l2_ctrl_handler_free(&priv->hdl);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue