msm: camera: cdm: Fix component unbind failures in cdm hw

In cdm hw unbind, smmu handle is destroyed before handler is
unset. Also, mutex unlock is unbalanced during error case. Fix
invalid unset handler call and unbalanced mutex in component
unbind for hw cdm.

CRs-Fixed: 2584631
Change-Id: I8e117ce9623ba631d9457ef851b8f271591091b6
Signed-off-by: Mukund Madhusudan Atre <matre@codeaurora.org>
This commit is contained in:
Mukund Madhusudan Atre
2020-02-16 23:29:27 -08:00
父節點 90d0abfbfd
當前提交 afb504ab34
共有 2 個文件被更改,包括 3 次插入4 次删除

查看文件

@@ -620,7 +620,7 @@ static void cam_cdm_intf_component_unbind(struct device *dev,
if (cam_virtual_cdm_remove(pdev)) {
CAM_ERR(CAM_CDM, "Virtual CDM remove failed");
goto end;
return;
}
put_cdm_mgr_refcount();
@@ -635,7 +635,6 @@ static void cam_cdm_intf_component_unbind(struct device *dev,
if (cdm_mgr.nodes[i].device || cdm_mgr.nodes[i].data ||
(cdm_mgr.nodes[i].refcount != 0)) {
CAM_ERR(CAM_CDM, "Valid node present in index=%d", i);
mutex_unlock(&cam_cdm_mgr_lock);
goto end;
}
mutex_destroy(&cdm_mgr.nodes[i].lock);