qcacld-3.0: Cleanup CSR/LIM for Roam sync indication failure in CSR

Currently, failure in csr_roam_synch_cb is not handled, therefore
failure during roam sync indication processing in CSR, leads to
out-of-sync between LIM and CSR sessions.

Handle the failure in csr_roam_synch_cb, by aborting the
roam complete notification to FW, and then process HO failure from
FW to cleanup LIM and CSR which will hold different BSSID profile.

Use vdev id instead of BSSID to retrieve/delete the LIM session.

Change-Id: I5ff2280e7ba1a8cb8e44c0c6b70647bf12b6ef31
CRs-Fixed: 3046370
这个提交包含在:
Surya Prakash Sivaraj
2021-10-05 20:59:23 +05:30
提交者 Madan Koyyalamudi
父节点 67469f384b
当前提交 2846627650
修改 5 个文件,包含 41 行新增17 行删除

查看文件

@@ -798,7 +798,12 @@ cm_fw_roam_sync_propagation(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
cm_update_scan_db_on_roam_success(vdev, connect_rsp,
roam_synch_data, cm_id);
cm_csr_connect_rsp(vdev, rsp);
status = cm_csr_connect_rsp(vdev, rsp);
if (QDF_IS_STATUS_ERROR(status)) {
mlme_err("Roam sync propagation failed, abort roaming");
goto error;
}
cm_process_roam_keys(vdev, rsp, cm_id);
mlme_cm_osif_connect_complete(vdev, connect_rsp);

查看文件

@@ -3613,6 +3613,10 @@ cm_roam_switch_to_rso_enable(struct wlan_objmgr_pdev *pdev,
return QDF_STATUS_SUCCESS;
case WLAN_ROAM_SYNCH_IN_PROG:
if (reason == REASON_ROAM_ABORT) {
mlme_debug("Roam synch in progress, drop Roam abort");
return QDF_STATUS_SUCCESS;
}
/*
* After roam sych propagation is complete, send
* RSO start command to firmware to update AP profile,