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

This reverts commit 41f23fb3ad.

Change-Id: Id2ddc88eafd279a1da73172b5321e466f51d82b4
This commit is contained in:
Linux Image Build Automation
2023-07-31 12:59:51 -07:00
parent 9e93c63409
commit dd405fdca8
2 changed files with 17 additions and 18 deletions

View File

@@ -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); status = wlan_vdev_get_bss_peer_mac(vdev, &bssid);
if (QDF_IS_STATUS_ERROR(status)) { if (QDF_IS_STATUS_ERROR(status)) {
pe_err("vdev id %d : failed to get bssid", pe_debug("vdev id %d : failed to get bssid",
wlan_vdev_get_id(vdev)); wlan_vdev_get_id(vdev));
return; return;
} }

View File

@@ -583,6 +583,7 @@ wma_delete_all_peers(tp_wma_handle wma,
uint8_t link_vdev_id; uint8_t link_vdev_id;
tDeleteStaParams *del_sta_params; tDeleteStaParams *del_sta_params;
QDF_STATUS status = QDF_STATUS_SUCCESS; QDF_STATUS status = QDF_STATUS_SUCCESS;
struct qdf_mac_addr bssid;
vdev = wlan_objmgr_get_vdev_by_id_from_psoc(wma->psoc, vdev_id, vdev = wlan_objmgr_get_vdev_by_id_from_psoc(wma->psoc, vdev_id,
WLAN_MLME_OBJMGR_ID); WLAN_MLME_OBJMGR_ID);
@@ -602,6 +603,15 @@ wma_delete_all_peers(tp_wma_handle wma,
if (!mlo_dev_ctx->wlan_vdev_list[i]) if (!mlo_dev_ctx->wlan_vdev_list[i])
continue; 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)); del_sta_params = qdf_mem_malloc(sizeof(*del_sta_params));
if (!del_sta_params) { if (!del_sta_params) {
status = QDF_STATUS_E_NOMEM; status = QDF_STATUS_E_NOMEM;
@@ -648,7 +658,6 @@ wma_roam_update_vdev(tp_wma_handle wma,
struct roam_offload_synch_ind *roam_synch_ind_ptr, struct roam_offload_synch_ind *roam_synch_ind_ptr,
uint8_t roamed_vdev_id) uint8_t roamed_vdev_id)
{ {
tDeleteStaParams *del_sta_params;
tAddStaParams *add_sta_params; tAddStaParams *add_sta_params;
uint8_t vdev_id, *bssid; uint8_t vdev_id, *bssid;
int32_t uc_cipher, cipher_cap; int32_t uc_cipher, cipher_cap;
@@ -688,22 +697,12 @@ wma_roam_update_vdev(tp_wma_handle wma,
* To handle this delete all link peers, * To handle this delete all link peers,
* while doing roam sync on first link. * while doing roam sync on first link.
*/ */
if (is_multi_link_roam(roam_synch_ind_ptr)) { if (!is_multi_link_roam(roam_synch_ind_ptr) ||
if (wlan_vdev_mlme_get_is_mlo_link(wma->psoc, vdev_id) || wlan_vdev_mlme_get_is_mlo_link(wma->psoc, vdev_id) ||
mlo_get_single_link_ml_roaming(wma->psoc, vdev_id)) { mlo_get_single_link_ml_roaming(wma->psoc, vdev_id)) {
status = wma_delete_all_peers(wma, vdev_id); status = wma_delete_all_peers(wma, vdev_id);
if (QDF_IS_STATUS_ERROR(status)) 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; 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; add_sta_params->staType = STA_ENTRY_SELF;