qcacld-3.0: Fix RSO state machine issues
For MLO connection, when disconnect is started as part of link switch, host will send RSO STOP to FW. Post disconnect complete host tries to enable RSO again on the other connected STA. This is protected by link switch in progress check to avoid sending RSO start on link vdev during link switch. But when NB or SB disconnect is queued during link switch, then link switch in progress flag is reset and RSO start might go on the assoc vdev. Do not enable RSO if disconnect is ongoing on same MLD. Also while processing RSO stop response fw might send RSO stop response on link vdev. Add handling to process RSO stop response on other vdev belonging to same MLD During roam sync if assoc rsp is received from unexpected peer then abort roaming and send rso stop to FW,HO fail will clean host CM state machine. Change-Id: Ibd1f424c3dea80e50e70ebdf112ee2cf44868ebe CRs-Fixed: 3626015
This commit is contained in:

committed by
Rahul Choudhary

parent
c0099b3505
commit
06c7860fe1
@@ -168,7 +168,10 @@ if_mgr_enable_roaming_on_connected_sta(struct wlan_objmgr_pdev *pdev,
|
||||
struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
struct wlan_objmgr_psoc *psoc;
|
||||
uint8_t vdev_id;
|
||||
uint8_t vdev_id = wlan_vdev_get_id(vdev);
|
||||
|
||||
if (wlan_vdev_mlme_get_opmode(vdev) != QDF_STA_MODE)
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
||||
/*
|
||||
* When link switch is in progress, don't send RSO Enable before vdev
|
||||
@@ -183,10 +186,7 @@ if_mgr_enable_roaming_on_connected_sta(struct wlan_objmgr_pdev *pdev,
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
||||
if (policy_mgr_is_sta_active_connection_exists(psoc) &&
|
||||
wlan_vdev_mlme_get_opmode(vdev) == QDF_STA_MODE &&
|
||||
mlo_is_enable_roaming_on_connected_sta_allowed(vdev)) {
|
||||
vdev_id = wlan_vdev_get_id(vdev);
|
||||
ifmgr_debug("Enable roaming on connected sta for vdev_id %d", vdev_id);
|
||||
wlan_cm_enable_roaming_on_connected_sta(pdev, vdev_id);
|
||||
policy_mgr_set_pcl_for_connected_vdev(psoc, vdev_id, true);
|
||||
}
|
||||
|
Reference in New Issue
Block a user