summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbhishek Singh <absingh@codeaurora.org>2016-12-15 11:20:43 +0530
committerAshish kumar goswami <agoswa@codeaurora.org>2017-01-03 15:59:00 +0530
commiteb67ab4c877a1b1f97bbb7819ec40eb98bc7cdaa (patch)
tree83c4090db84e4727daad20b87e697cce9d87c65e
parent598bf6d72af0b6c82d2af9f47237fb5c1d26234e (diff)
qcacld-2.0: Reset uOsRequestedHandoff when reassoc fails
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/csrNeighborRoam.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/CORE/SME/src/csr/csrNeighborRoam.c b/CORE/SME/src/csr/csrNeighborRoam.c
index 04bedb75a1ad..a12129501e10 100644
--- a/CORE/SME/src/csr/csrNeighborRoam.c
+++ b/CORE/SME/src/csr/csrNeighborRoam.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011-2016 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011-2017 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -5003,6 +5003,9 @@ eHalStatus csrNeighborRoamIndicateDisconnect(tpAniSirGlobal pMac,
eCSR_NEIGHBOR_ROAM_STATE_INIT,
sessionId);
pNeighborRoamInfo->roamChannelInfo.IAPPNeighborListReceived = eANI_BOOLEAN_FALSE;
+#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
+ pNeighborRoamInfo->uOsRequestedHandoff = 0;
+#endif
}
break;
@@ -5039,6 +5042,7 @@ eHalStatus csrNeighborRoamIndicateDisconnect(tpAniSirGlobal pMac,
pNeighborRoamInfo->roamChannelInfo.IAPPNeighborListReceived = eANI_BOOLEAN_FALSE;
csrNeighborRoamResetCfgListChanScanControlInfo(pMac, sessionId);
#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
+ pNeighborRoamInfo->uOsRequestedHandoff = 0;
if (!csrRoamIsRoamOffloadScanEnabled(pMac))
{
#endif
@@ -5076,6 +5080,9 @@ eHalStatus csrNeighborRoamIndicateDisconnect(tpAniSirGlobal pMac,
CSR_NEIGHBOR_ROAM_STATE_TRANSITION(eCSR_NEIGHBOR_ROAM_STATE_INIT,
sessionId)
pNeighborRoamInfo->roamChannelInfo.IAPPNeighborListReceived = eANI_BOOLEAN_FALSE;
+#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
+ pNeighborRoamInfo->uOsRequestedHandoff = 0;
+#endif
break;
}
#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
@@ -5208,6 +5215,9 @@ eHalStatus csrNeighborRoamIndicateConnect(tpAniSirGlobal pMac,
eCSR_NEIGHBOR_ROAM_STATE_INIT,
sessionId)
pNeighborRoamInfo->roamChannelInfo.IAPPNeighborListReceived = eANI_BOOLEAN_FALSE;
+#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
+ pNeighborRoamInfo->uOsRequestedHandoff = 0;
+#endif
break;
}
/* Fall through if the status is SUCCESS */
@@ -5626,6 +5636,9 @@ eHalStatus csrNeighborRoamInit(tpAniSirGlobal pMac, tANI_U8 sessionId)
pNeighborRoamInfo->roamChannelInfo.IAPPNeighborListReceived = eANI_BOOLEAN_FALSE;
/* Set the Last Sent Cmd as RSO_STOP */
pNeighborRoamInfo->lastSentCmd = ROAM_SCAN_OFFLOAD_STOP;
+#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
+ pNeighborRoamInfo->uOsRequestedHandoff = 0;
+#endif
return eHAL_STATUS_SUCCESS;
}
@@ -5976,6 +5989,9 @@ void csrNeighborRoamTranistionPreauthDoneToDisconnected(tpAniSirGlobal pMac,
// Transition to init state
CSR_NEIGHBOR_ROAM_STATE_TRANSITION(eCSR_NEIGHBOR_ROAM_STATE_INIT, sessionId)
pNeighborRoamInfo->roamChannelInfo.IAPPNeighborListReceived = eANI_BOOLEAN_FALSE;
+#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
+ pNeighborRoamInfo->uOsRequestedHandoff = 0;
+#endif
}
/* ---------------------------------------------------------------------------