msm: camera: sensor: unregister subdev if cpas registration fails

In case if the CPAS registration is failed before freeing the
memory of the subdev, subdev need to be unregistered so that
subdev list entry will not become NULL and other subdev can
be added.

CRs-Fixed: 2708016
Change-Id: I464c73411596fc562fc7a190ddfa130f23ee487a
Signed-off-by: Tejas Prajapati <tpraja@codeaurora.org>
This commit is contained in:
Tejas Prajapati 2020-06-12 16:18:05 +05:30 • committed by Gerrit - the friendly Code Review server
commit 151c426683
2 changed files with 8 additions and 2 deletions

View file

@ -441,7 +441,7 @@ static int cam_cci_component_bind(struct device *dev,
rc = cam_cpas_register_client(&cpas_parms);
if (rc) {
CAM_ERR(CAM_CCI, "CPAS registration failed rc:%d", rc);
goto cci_no_resource;
goto cci_unregister_subdev;
}
CAM_DBG(CAM_CCI, "CPAS registration successful handle=%d",
@ -449,6 +449,9 @@ static int cam_cci_component_bind(struct device *dev,
new_cci_dev->cpas_handle = cpas_parms.client_handle;
CAM_DBG(CAM_CCI, "Component bound successfully");
return rc;
cci_unregister_subdev:
cam_unregister_subdev(&(new_cci_dev->v4l2_dev_str));
cci_no_resource:
devm_kfree(&pdev->dev, new_cci_dev);
return rc;

View file

@ -211,7 +211,7 @@ static int cam_csiphy_component_bind(struct device *dev,
rc = cam_cpas_register_client(&cpas_parms);
if (rc) {
CAM_ERR(CAM_CSIPHY, "CPAS registration failed rc: %d", rc);
goto csiphy_no_resource;
goto csiphy_unregister_subdev;
}
CAM_DBG(CAM_CSIPHY, "CPAS registration successful handle=%d",
@ -220,6 +220,9 @@ static int cam_csiphy_component_bind(struct device *dev,
CAM_DBG(CAM_CSIPHY, "%s component bound successfully",
pdev->name);
return rc;
csiphy_unregister_subdev:
cam_unregister_subdev(&(new_csiphy_dev->v4l2_dev_str));
csiphy_no_resource:
mutex_destroy(&new_csiphy_dev->mutex);
kfree(new_csiphy_dev->ctrl_reg);