qcacld-3.0: Reset the RSO SM of MLO link upon roam abort
Roam sync may get aborted on link vdev due to multiple reasons. Link scan entry being not available at host is one such case. del_sta response of BSS gets dropped due to stale link-RSO state and results in disconnect timeout. Reset the RSO state machine of link vdev when roaming is aborted to allow cleanup the vdev in next disconnect. Change-Id: Ie584c5b7ccae989cf2ce64e85da26d1b3526f1e0 CRs-Fixed: 3352543
这个提交包含在:
@@ -4471,7 +4471,8 @@ cm_mlo_roam_switch_for_link(struct wlan_objmgr_pdev *pdev,
|
||||
struct wlan_objmgr_psoc *psoc = wlan_pdev_get_psoc(pdev);
|
||||
enum roam_offload_state cur_state = mlme_get_roam_state(psoc, vdev_id);
|
||||
|
||||
if (reason != REASON_ROAM_HANDOFF_DONE)
|
||||
if (reason != REASON_ROAM_HANDOFF_DONE &&
|
||||
reason != REASON_ROAM_ABORT)
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
|
||||
switch (cur_state) {
|
||||
@@ -4530,7 +4531,8 @@ cm_handle_mlo_rso_state_change(struct wlan_objmgr_pdev *pdev,
|
||||
|
||||
if (wlan_vdev_mlme_get_is_mlo_link(wlan_pdev_get_psoc(pdev),
|
||||
*vdev_id)) {
|
||||
if (reason == REASON_ROAM_HANDOFF_DONE) {
|
||||
if (reason == REASON_ROAM_HANDOFF_DONE ||
|
||||
reason == REASON_ROAM_ABORT) {
|
||||
status = cm_mlo_roam_switch_for_link(pdev, *vdev_id,
|
||||
reason);
|
||||
mlme_debug("MLO ROAM: update rso state on link vdev %d",
|
||||
|
@@ -347,6 +347,10 @@ QDF_STATUS cm_fw_roam_abort_req(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id)
|
||||
status = wlan_cm_roam_state_change(pdev, vdev_id,
|
||||
WLAN_ROAM_RSO_ENABLED,
|
||||
REASON_ROAM_ABORT);
|
||||
else if (MLME_IS_MLO_ROAM_SYNCH_IN_PROGRESS(psoc, vdev_id))
|
||||
status = wlan_cm_roam_state_change(pdev, vdev_id,
|
||||
WLAN_ROAM_DEINIT,
|
||||
REASON_ROAM_ABORT);
|
||||
|
||||
cm_abort_fw_roam(cm_ctx, cm_id);
|
||||
rel_ref:
|
||||
|
在新工单中引用
屏蔽一个用户