mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 00:24:41 -04:00
qcacld-3.0: Set roam invoke in progress to false on HO failure
When roam invoke fails during handoff, firmware sends HO failure indication to host. Here the roam_invoke_in_progress flag is not cleared. Clear the roam_invoke_in_progress flag when fastreassoc fails due to handoff failure at firmware. Change-Id: Ifc0ade939980138f64013299a9ea4e97468ce00f CRs-Fixed: 2715281
This commit is contained in:
parent
fff75f60cc
commit
bbe3ab0934
2 changed files with 27 additions and 8 deletions
|
|
@ -1006,6 +1006,15 @@ csr_rso_save_ap_to_scan_cache(struct mac_context *mac,
|
|||
struct roam_offload_synch_ind *roam_synch_ind,
|
||||
struct bss_description *bss_desc_ptr);
|
||||
|
||||
/**
|
||||
* csr_process_ho_fail_ind - This function will process the Hand Off Failure
|
||||
* indication received from the firmware. It will trigger a disconnect on
|
||||
* the session which the firmware reported a hand off failure.
|
||||
* @mac: Pointer to global Mac
|
||||
* @msg_buf: Pointer to wma Ho fail indication message
|
||||
*
|
||||
* Return: None
|
||||
*/
|
||||
void csr_process_ho_fail_ind(struct mac_context *mac, void *msg_buf);
|
||||
#endif
|
||||
#ifdef FEATURE_WLAN_DIAG_SUPPORT_CSR
|
||||
|
|
|
|||
|
|
@ -19867,17 +19867,11 @@ void csr_roaming_report_diag_event(struct mac_context *mac_ctx,
|
|||
#endif
|
||||
|
||||
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
|
||||
/*
|
||||
* fn csr_process_ho_fail_ind
|
||||
* brief This function will process the Hand Off Failure indication
|
||||
* received from the firmware. It will trigger a disconnect on
|
||||
* the session which the firmware reported a hand off failure
|
||||
* param mac global structure
|
||||
* param msg_buf - Contains the session ID for which the handler should apply
|
||||
*/
|
||||
void csr_process_ho_fail_ind(struct mac_context *mac_ctx, void *msg_buf)
|
||||
{
|
||||
struct handoff_failure_ind *pSmeHOFailInd = msg_buf;
|
||||
struct mlme_roam_after_data_stall *vdev_roam_params;
|
||||
struct wlan_objmgr_vdev *vdev;
|
||||
uint32_t sessionId;
|
||||
|
||||
if (!pSmeHOFailInd) {
|
||||
|
|
@ -19893,6 +19887,22 @@ void csr_process_ho_fail_ind(struct mac_context *mac_ctx, void *msg_buf)
|
|||
sessionId);
|
||||
return;
|
||||
}
|
||||
|
||||
vdev = wlan_objmgr_get_vdev_by_id_from_psoc(mac_ctx->psoc, sessionId,
|
||||
WLAN_LEGACY_SME_ID);
|
||||
if (!vdev) {
|
||||
sme_err("LFR3: vdev is NULL");
|
||||
return;
|
||||
}
|
||||
|
||||
vdev_roam_params = mlme_get_roam_invoke_params(vdev);
|
||||
if (vdev_roam_params)
|
||||
vdev_roam_params->roam_invoke_in_progress = false;
|
||||
else
|
||||
sme_err("LFR3: Vdev roam params is NULL");
|
||||
|
||||
wlan_objmgr_vdev_release_ref(vdev, WLAN_LEGACY_SME_ID);
|
||||
|
||||
mac_ctx->sme.set_connection_info_cb(false);
|
||||
csr_roam_roaming_offload_timer_action(mac_ctx, 0, sessionId,
|
||||
ROAMING_OFFLOAD_TIMER_STOP);
|
||||
|
|
|
|||
Loading…
Reference in a new issue