qcacld-3.0: Don't delete ml_peer as part of pe_session cleanup
Currently, sta_ds corresponds to old pe_session bssid is cleaned up and new sta_ds is created with new bssid when DUT roams to a new AP. ml_peer is also cleaned up as part of this. But the ml_peer corresponds to old connection is already freed up in wma_delete_all_peers() at the beginning of roam sync handling. This is not an issue when roamed ml_peer is different from the current ml_peer as the attempt to delete the old ml_peer second time gets rejected. But in self roaming cases, current ml_peer might be valid for other links post roaming. So, delete the ml_peer in pe_roam_synch_callback() only if DUT roams to a non-11BE target as the same is not cleaned up in wma_delete_all_peers() for non-11BE candidates. Change-Id: I2f92608b880960328cc1b104a8ab55f08c154c42 CRs-Fixed: 3579053
This commit is contained in:

committed by
Rahul Choudhary

parent
b37953bc1c
commit
b3bedcb9c0
@@ -3112,9 +3112,17 @@ pe_roam_synch_callback(struct mac_context *mac_ctx,
|
||||
|
||||
/* Cleanup the old session */
|
||||
session_ptr->limSmeState = eLIM_SME_IDLE_STATE;
|
||||
|
||||
/*
|
||||
* Delete the ml_peer only if DUT is roamed to a non-11BE candidate.
|
||||
* ml_peer is already cleaned up in wma_delete_all_peers() at the
|
||||
* beginning of roam_sync handling for 11BE candidates.
|
||||
*/
|
||||
if (sta_ds) {
|
||||
lim_mlo_notify_peer_disconn(session_ptr, sta_ds);
|
||||
lim_mlo_roam_delete_link_peer(session_ptr, sta_ds);
|
||||
if (!wlan_vdev_mlme_is_mlo_vdev(session_ptr->vdev)) {
|
||||
lim_mlo_notify_peer_disconn(session_ptr, sta_ds);
|
||||
lim_mlo_roam_delete_link_peer(session_ptr, sta_ds);
|
||||
}
|
||||
lim_cleanup_rx_path(mac_ctx, sta_ds, session_ptr, false);
|
||||
lim_delete_dph_hash_entry(mac_ctx, sta_ds->staAddr, aid,
|
||||
session_ptr);
|
||||
|
Reference in New Issue
Block a user