Browse Source

qcacmn: Clear MLO cap bit in case of failure or disconnect complete

Clear the MLO capability bit in the following scenarios:
- On a successful disconnect complete
- On a failing connect complete
- Every time we fetch a new candidate
This will ensure subsequent connections are not effected by this bit.

Change-Id: I4cbda78715450b5db5bc25cb7f6a141d636b712b
CRs-fixed: 3054192
Lincoln Tran 3 years ago
parent
commit
1b0df8b4fb

+ 6 - 0
umac/mlme/connection_mgr/core/src/wlan_cm_connect.c

@@ -1554,6 +1554,8 @@ flush_single_pmk:
 	if (same_candidate_used)
 		*same_candidate_used = use_same_candidate;
 
+	wlan_vdev_mlme_feat_ext2_cap_clear(cm_ctx->vdev, WLAN_VDEV_FEXT2_MLO);
+
 	return status;
 }
 
@@ -1929,6 +1931,10 @@ QDF_STATUS cm_notify_connect_complete(struct cnx_mgr *cm_ctx,
 					  resp->connect_status);
 	cm_inform_blm_connect_complete(cm_ctx->vdev, resp);
 
+	if (QDF_IS_STATUS_ERROR(resp->connect_status))
+		wlan_vdev_mlme_feat_ext2_cap_clear(cm_ctx->vdev,
+						   WLAN_VDEV_FEXT2_MLO);
+
 	return QDF_STATUS_SUCCESS;
 }
 

+ 1 - 0
umac/mlme/connection_mgr/core/src/wlan_cm_disconnect.c

@@ -457,6 +457,7 @@ QDF_STATUS cm_notify_disconnect_complete(struct cnx_mgr *cm_ctx,
 	mlme_cm_osif_disconnect_complete(cm_ctx->vdev, resp);
 	cm_if_mgr_inform_disconnect_complete(cm_ctx->vdev);
 	cm_inform_blm_disconnect_complete(cm_ctx->vdev, resp);
+	wlan_vdev_mlme_feat_ext2_cap_clear(cm_ctx->vdev, WLAN_VDEV_FEXT2_MLO);
 
 	return QDF_STATUS_SUCCESS;
 }