浏览代码

msm: camera: isp: Fix failure due to dereference of invalid ife device

During reset of vfe hw, we are referencing an ife device which might
not be available. Add condition to check ife device validity before
reset.

CRs-Fixed: 2584631
Change-Id: Ibf9e3e0a3696cf006977af60360a964748e8ef38
Signed-off-by: Mukund Madhusudan Atre <[email protected]>
Mukund Madhusudan Atre 5 年之前
父节点
当前提交
3abdf420b1

+ 2 - 1
drivers/cam_isp/isp_hw_mgr/cam_ife_hw_mgr.c

@@ -3948,7 +3948,8 @@ static int cam_ife_mgr_reset_vfe_hw(struct cam_ife_hw_mgr *hw_mgr,
 	vfe_reset_type = CAM_VFE_HW_RESET_HW;
 
 	for (i = 0; i < CAM_VFE_HW_NUM_MAX; i++) {
-		if (hw_idx != hw_mgr->ife_devices[i]->hw_idx)
+		if ((!hw_mgr->ife_devices[i]) ||
+			(hw_idx != hw_mgr->ife_devices[i]->hw_idx))
 			continue;
 		CAM_DBG(CAM_ISP, "VFE (id = %d) reset", hw_idx);
 		vfe_hw_intf = hw_mgr->ife_devices[i];

+ 1 - 1
drivers/cam_isp/isp_hw_mgr/isp_hw/vfe_hw/cam_vfe_dev.c

@@ -14,7 +14,7 @@
 #include "cam_vfe_soc.h"
 #include "cam_debug_util.h"
 
-static struct cam_hw_intf *cam_vfe_hw_list[CAM_VFE_HW_NUM_MAX] = {0, 0, 0, 0};
+static struct cam_hw_intf *cam_vfe_hw_list[CAM_VFE_HW_NUM_MAX];
 
 static char vfe_dev_name[8];