浏览代码

qcacmn: Ignore QDF_STATUS_E_ALREADY when vdev creating

Per PDT testing, when vdev creating, the variable rsp_timer_inuse
is set, it is abnormal and causes fw crash. Since the variable
rsp_timer_inuse will be initialized later in function
target_if_psoc_vdev_rsp_timer_init. So ignore status
QDF_STATUS_E_ALREADY in function mlme_vdev_obj_create_handler.

Change-Id: I48c622d99f1a0686dfa7725fb69116a5ab8a1e58
CRs-Fixed: 3574858
Paul Zhang 1 年之前
父节点
当前提交
6ca876877a
共有 1 个文件被更改,包括 7 次插入3 次删除
  1. 7 3
      umac/mlme/mlme_objmgr/dispatcher/src/wlan_vdev_mlme_main.c

+ 7 - 3
umac/mlme/mlme_objmgr/dispatcher/src/wlan_vdev_mlme_main.c

@@ -77,9 +77,13 @@ static QDF_STATUS mlme_vdev_obj_create_handler(struct wlan_objmgr_vdev *vdev,
 
 
 	status = txops->psoc_vdev_rsp_timer_inuse(psoc, wlan_vdev_get_id(vdev));
 	status = txops->psoc_vdev_rsp_timer_inuse(psoc, wlan_vdev_get_id(vdev));
 	if (QDF_IS_STATUS_ERROR(status)) {
 	if (QDF_IS_STATUS_ERROR(status)) {
-		mlme_err("The vdev response is pending for VDEV_%d status:%d",
-			 wlan_vdev_get_id(vdev), status);
-		return QDF_STATUS_E_FAILURE;
+		if (status == QDF_STATUS_E_ALREADY) {
+			mlme_err("Go through, since timer initializes later.");
+		} else {
+			mlme_err("The vdev response is pending for VDEV_%d status:%d",
+				 wlan_vdev_get_id(vdev), status);
+			return QDF_STATUS_E_FAILURE;
+		}
 	}
 	}
 
 
 	pdev_mlme = wlan_pdev_mlme_get_cmpt_obj(pdev);
 	pdev_mlme = wlan_pdev_mlme_get_cmpt_obj(pdev);