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
这个提交包含在:
Srinivas Dasari
2022-12-06 13:47:58 +05:30
提交者 Madan Koyyalamudi
父节点 b24ee5cee9
当前提交 49ea4902ae
修改 4 个文件,包含 19 行新增2 行删除

查看文件

@@ -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: