qcacmn: On link switch don't change the state of ML peer

On disconnect ML peer state is set to disconnect initiated,
this helps to avoid sending multiple deauth/disassoc OTA
frames to AP on each VDEV.
If link switch fails the ML peer will be in this state so
for next userspace disconnect request deauth/disassoc frame
is not sent OTA and AP might not be aware of STA leaving the
network.

Do not change ML peer's state on VDEV link switch disconnect
to ML_PEER_DISCONN_INITIATED.

Change-Id: Icbbb46bbf78cea796a3a1e07754be3a626390ad0
CRs-Fixed: 3601739
这个提交包含在:
Vinod Kumar Pirla
2023-08-29 06:03:37 -07:00
提交者 Rahul Choudhary
父节点 5e7649fe1a
当前提交 caf1626286

查看文件

@@ -724,6 +724,14 @@ void wlan_mlo_partner_peer_disconnect_notify(struct wlan_objmgr_peer *src_peer)
if (!vdev)
return;
/* Do not change peer state to disconnect initiated for
* link switch case, this can lead to not sending deauth frame
* incase of actual disconnect and AP might drop the next connect
* request as it might think STA is still in connected state.
*/
if (wlan_vdev_mlme_is_mlo_link_switch_in_progress(vdev))
return;
mlo_peer_lock_acquire(ml_peer);
if (ml_peer->mlpeer_state == ML_PEER_DISCONN_INITIATED) {