Browse Source

qcacld-3.0: Add link entry to policy_mgr upon legacy to MLO roam

Currently, link entry is not added to connection_list of
policy_mgr in case of legacy to MLO roaming. This causes
policy_mgr to miss track of the MLO link.
Check if the connection entry is present in the policy mgr
for the link vdev id and add an entry if it's not present.

Change-Id: Ib19f3616a3384670f1faef20c39476a2bcac2588
CRs-Fixed: 3274435
Srinivas Dasari 2 years ago
parent
commit
284ee6b50b

+ 1 - 1
components/cmn_services/policy_mgr/src/wlan_policy_mgr_action.c

@@ -363,7 +363,7 @@ QDF_STATUS policy_mgr_update_connection_info(struct wlan_objmgr_psoc *psoc,
 		/* err msg */
 		policy_mgr_err("can't find vdev_id %d in pm_conc_connection_list",
 			vdev_id);
-		return status;
+		return QDF_STATUS_NOT_INITIALIZED;
 	}
 	if (pm_ctx->wma_cbacks.wma_get_connection_info) {
 		status = pm_ctx->wma_cbacks.wma_get_connection_info(

+ 7 - 3
components/umac/mlme/connection_mgr/core/src/wlan_cm_roam_fw_sync.c

@@ -1010,8 +1010,6 @@ QDF_STATUS cm_fw_roam_complete(struct cnx_mgr *cm_ctx, void *data)
 		goto end;
 	}
 
-	/* Check if FW as indicated this link as disabled */
-	cm_get_and_disable_link_from_roam_ind(psoc, vdev_id, roam_synch_data);
 	/*
 	 * Following operations need to be done once roam sync
 	 * completion is sent to FW, hence called here:
@@ -1020,7 +1018,13 @@ QDF_STATUS cm_fw_roam_complete(struct cnx_mgr *cm_ctx, void *data)
 	 * 2) Force SCC switch if needed
 	 */
 	/* first update connection info from wma interface */
-	policy_mgr_update_connection_info(psoc, vdev_id);
+	status = policy_mgr_update_connection_info(psoc, vdev_id);
+	if (status == QDF_STATUS_NOT_INITIALIZED)
+		policy_mgr_incr_active_session(psoc, QDF_STA_MODE, vdev_id);
+
+	/* Check if FW as indicated this link as disabled */
+	cm_get_and_disable_link_from_roam_ind(psoc, vdev_id, roam_synch_data);
+
 	/* then update remaining parameters from roam sync ctx */
 	if (roam_synch_data->hw_mode_trans_present)
 		policy_mgr_hw_mode_transition_cb(