mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-08 12:58:12 -04:00
qcacld-3.0: Fix RSO state change in disconnected state
When roaming has started and connect request from userspace is received, disconnect is initiated as part of the connect request and RSO stop->RSO Deinit is sent to firmware. But before receiving the RSO stop, firmware posted the Roam Synch indication to the host driver. While droping the roam synch indication, the driver does abort roaming and as part of that RSO state is changed to RSO enabled in connecting state. Change the RSO state to RSO enabled only if roaming or roam synch indication processing is in progress. Change-Id: I7869d1a559884480708b9d1a493296a443364f0b CRs-Fixed: 3089165
This commit is contained in:
parent
f651822692
commit
43957256d4
1 changed files with 12 additions and 3 deletions
|
|
@ -21306,10 +21306,19 @@ csr_process_roam_sync_callback(struct mac_context *mac_ctx,
|
|||
* the candidate was not successful.
|
||||
* Connection to the previous AP is still valid in this
|
||||
* case. So move to RSO_ENABLED state.
|
||||
*
|
||||
* Switch to RSO enabled state only if the current state is
|
||||
* WLAN_ROAMING_IN_PROG or WLAN_ROAM_SYNCH_IN_PROG.
|
||||
* This API can be called in internal roam aborts also when
|
||||
* RSO state is deinit and cause RSO start to be sent in
|
||||
* disconnected state.
|
||||
*/
|
||||
csr_post_roam_state_change(mac_ctx, session_id,
|
||||
WLAN_ROAM_RSO_ENABLED,
|
||||
REASON_ROAM_ABORT);
|
||||
if (MLME_IS_ROAMING_IN_PROG(mac_ctx->psoc, session_id) ||
|
||||
MLME_IS_ROAM_SYNCH_IN_PROGRESS(mac_ctx->psoc, session_id))
|
||||
csr_post_roam_state_change(mac_ctx, session_id,
|
||||
WLAN_ROAM_RSO_ENABLED,
|
||||
REASON_ROAM_ABORT);
|
||||
|
||||
csr_roam_roaming_offload_timer_action(mac_ctx,
|
||||
0, session_id, ROAMING_OFFLOAD_TIMER_STOP);
|
||||
csr_roam_call_callback(mac_ctx, session_id, NULL, 0,
|
||||
|
|
|
|||
Loading…
Reference in a new issue