|
@@ -583,6 +583,7 @@ 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);
|
|
@@ -602,6 +603,15 @@ 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;
|
|
@@ -648,7 +658,6 @@ 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;
|
|
@@ -688,22 +697,12 @@ 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)) {
|
|
|
- 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)
|
|
|
+ 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))
|
|
|
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;
|