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
This commit is contained in:
Surya Prakash Sivaraj
2021-10-05 20:59:23 +05:30
zatwierdzone przez Madan Koyyalamudi
rodzic 67469f384b
commit 2846627650
5 zmienionych plików z 41 dodań i 17 usunięć

Wyświetl plik

@@ -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);

Wyświetl plik

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