diff options
| author | Abhishek Singh <absingh@codeaurora.org> | 2017-01-02 11:44:51 +0530 |
|---|---|---|
| committer | qcabuildsw <qcabuildsw@localhost> | 2017-01-09 06:43:50 -0800 |
| commit | 7db8b926985a28e8f0a00dff75180ca1f8616f73 (patch) | |
| tree | 96a3f41d8c87aef4c79626a2d24382a8f97ba373 | |
| parent | 97eb5ce5b66170a7d9774ab76141b98f56041c4d (diff) | |
qcacld-3.0: Reset uOsRequestedHandoff when reassoc fails
qcacld-2.0 to qcacld-3.0 propagation
uOsRequestedHandoff is not reset in many scenarios after reassoc
fails/timeout. Due to this if the next connect request initiate
scan for ssid to find the AP in local cache, the scan for ssid
complete handler think that OS requested handoff is in progress
and returns without initiating the connect or connect failure.
Thus the HDD remains in connecting state and after that scans
fails.
To fix this reset uOsRequestedHandoff whenever reassoc fails
Change-Id: Ife9ee885cc1638f2bc4e02fd91b000c6e00f0689
CRs-Fixed: 1101706
| -rw-r--r-- | core/sme/src/csr/csr_neighbor_roam.c | 4 | ||||
| -rw-r--r-- | core/sme/src/csr/csr_roam_preauth.c | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/core/sme/src/csr/csr_neighbor_roam.c b/core/sme/src/csr/csr_neighbor_roam.c index ef092d7cf6c5..eb11a057d081 100644 --- a/core/sme/src/csr/csr_neighbor_roam.c +++ b/core/sme/src/csr/csr_neighbor_roam.c @@ -907,6 +907,7 @@ QDF_STATUS csr_neighbor_roam_indicate_disconnect(tpAniSirGlobal pMac, eCSR_NEIGHBOR_ROAM_STATE_INIT, sessionId); pNeighborRoamInfo->roamChannelInfo. IAPPNeighborListReceived = false; + pNeighborRoamInfo->uOsRequestedHandoff = 0; } break; @@ -947,6 +948,7 @@ QDF_STATUS csr_neighbor_roam_indicate_disconnect(tpAniSirGlobal pMac, eCSR_NEIGHBOR_ROAM_STATE_INIT, sessionId); pNeighborRoamInfo->roamChannelInfo. IAPPNeighborListReceived = false; + pNeighborRoamInfo->uOsRequestedHandoff = 0; break; } /*Inform the Firmware to STOP Scanning as the host has a disconnect. */ @@ -1170,6 +1172,7 @@ QDF_STATUS csr_neighbor_roam_indicate_connect( eCSR_NEIGHBOR_ROAM_STATE_INIT, session_id); ngbr_roam_info->roamChannelInfo.IAPPNeighborListReceived = false; + ngbr_roam_info->uOsRequestedHandoff = 0; break; } /* Fall through if the status is SUCCESS */ @@ -1376,6 +1379,7 @@ QDF_STATUS csr_neighbor_roam_init(tpAniSirGlobal pMac, uint8_t sessionId) csr_neighbor_roam_state_transition(pMac, eCSR_NEIGHBOR_ROAM_STATE_INIT, sessionId); pNeighborRoamInfo->roamChannelInfo.IAPPNeighborListReceived = false; + pNeighborRoamInfo->uOsRequestedHandoff = 0; /* Set the Last Sent Cmd as RSO_STOP */ pNeighborRoamInfo->last_sent_cmd = ROAM_SCAN_OFFLOAD_STOP; return QDF_STATUS_SUCCESS; diff --git a/core/sme/src/csr/csr_roam_preauth.c b/core/sme/src/csr/csr_roam_preauth.c index 9419514251a4..53c95b2f99e7 100644 --- a/core/sme/src/csr/csr_roam_preauth.c +++ b/core/sme/src/csr/csr_roam_preauth.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2016-2017 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -91,6 +91,7 @@ void csr_neighbor_roam_tranistion_preauth_done_to_disconnected( csr_neighbor_roam_state_transition(mac_ctx, eCSR_NEIGHBOR_ROAM_STATE_INIT, session_id); pNeighborRoamInfo->roamChannelInfo.IAPPNeighborListReceived = false; + pNeighborRoamInfo->uOsRequestedHandoff = 0; } /** |
