summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbhishek Singh <absingh@codeaurora.org>2017-01-02 11:44:51 +0530
committerqcabuildsw <qcabuildsw@localhost>2017-01-09 06:43:50 -0800
commit7db8b926985a28e8f0a00dff75180ca1f8616f73 (patch)
tree96a3f41d8c87aef4c79626a2d24382a8f97ba373
parent97eb5ce5b66170a7d9774ab76141b98f56041c4d (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.c4
-rw-r--r--core/sme/src/csr/csr_roam_preauth.c3
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;
}
/**