Browse Source

Revert "qcacld-3.0: Cleanup current peers upon non-11BE roaming also"

This reverts commit 94435f22df481802c7df28515a6a2adc921e8ce3.

This change is causing regressions in wlan CTS testing.

Change-Id: I6af64ece48588244a2ff1fd81c387066f4584e4a
Bruce Levy 2 years ago
parent
commit
41f23fb3ad
2 changed files with 18 additions and 17 deletions
  1. 2 2
      core/mac/src/pe/lim/lim_mlo.c
  2. 16 15
      core/wma/src/wma_scan_roam.c

+ 2 - 2
core/mac/src/pe/lim/lim_mlo.c

@@ -456,8 +456,8 @@ void lim_mlo_roam_peer_disconn_del(struct wlan_objmgr_vdev *vdev)
 
 	status = wlan_vdev_get_bss_peer_mac(vdev, &bssid);
 	if (QDF_IS_STATUS_ERROR(status)) {
-		pe_debug("vdev id %d : failed to get bssid",
-			 wlan_vdev_get_id(vdev));
+		pe_err("vdev id %d : failed to get bssid",
+		       wlan_vdev_get_id(vdev));
 		return;
 	}
 

+ 16 - 15
core/wma/src/wma_scan_roam.c

@@ -583,7 +583,6 @@ wma_delete_all_peers(tp_wma_handle wma,
 	uint8_t link_vdev_id;
 	tDeleteStaParams *del_sta_params;
 	QDF_STATUS status = QDF_STATUS_SUCCESS;
-	struct qdf_mac_addr bssid;
 
 	vdev = wlan_objmgr_get_vdev_by_id_from_psoc(wma->psoc, vdev_id,
 						    WLAN_MLME_OBJMGR_ID);
@@ -603,15 +602,6 @@ wma_delete_all_peers(tp_wma_handle wma,
 		if (!mlo_dev_ctx->wlan_vdev_list[i])
 			continue;
 
-		if (QDF_IS_STATUS_ERROR(wlan_vdev_get_bss_peer_mac(
-			mlo_dev_ctx->wlan_vdev_list[i],
-			&bssid))) {
-			pe_debug("bss peer is not present on vdev id %d, no need to cleanup",
-				 wlan_vdev_get_id(
-				 mlo_dev_ctx->wlan_vdev_list[i]));
-			continue;
-		}
-
 		del_sta_params = qdf_mem_malloc(sizeof(*del_sta_params));
 		if (!del_sta_params) {
 			status = QDF_STATUS_E_NOMEM;
@@ -658,6 +648,7 @@ wma_roam_update_vdev(tp_wma_handle wma,
 		     struct roam_offload_synch_ind *roam_synch_ind_ptr,
 		     uint8_t roamed_vdev_id)
 {
+	tDeleteStaParams *del_sta_params;
 	tAddStaParams *add_sta_params;
 	uint8_t vdev_id, *bssid;
 	int32_t uc_cipher, cipher_cap;
@@ -697,12 +688,22 @@ wma_roam_update_vdev(tp_wma_handle wma,
 	 * To handle this delete all link peers,
 	 * while doing roam sync on first link.
 	 */
-	if (!is_multi_link_roam(roam_synch_ind_ptr) ||
-	    wlan_vdev_mlme_get_is_mlo_link(wma->psoc, vdev_id) ||
-	    mlo_get_single_link_ml_roaming(wma->psoc, vdev_id)) {
-		status = wma_delete_all_peers(wma, vdev_id);
-		if (QDF_IS_STATUS_ERROR(status))
+	if (is_multi_link_roam(roam_synch_ind_ptr)) {
+		if (wlan_vdev_mlme_get_is_mlo_link(wma->psoc, vdev_id) ||
+		    mlo_get_single_link_ml_roaming(wma->psoc, vdev_id)) {
+			status = wma_delete_all_peers(wma, vdev_id);
+			if (QDF_IS_STATUS_ERROR(status))
+				goto end;
+		}
+	} else {
+		del_sta_params = qdf_mem_malloc(sizeof(*del_sta_params));
+		if (!del_sta_params)
 			goto end;
+
+		qdf_mem_zero(del_sta_params, sizeof(*del_sta_params));
+		del_sta_params->smesessionId = vdev_id;
+		wma_delete_sta(wma, del_sta_params);
+		wma_delete_bss(wma, vdev_id);
 	}
 
 	add_sta_params->staType = STA_ENTRY_SELF;