summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKalikinkar dhara <c_kaliki@qca.qualcomm.com>2014-04-07 16:59:05 -0700
committerAkash Patel <c_akashp@qca.qualcomm.com>2014-04-10 07:12:43 -0700
commit461083dfef646a3d00d7c495edc66cd534cfd417 (patch)
treef4338ff80c735b7f12d1dd9a425b22467beea273
parent31f15243360fdb162c549095e229255a2b36cb8f (diff)
qcacld: Do not process SIGNAL_POLL request if roaming is in progress
When framework issues signal_poll request to get the statistics of the station, supplicant shall get blocked for a maximum period of 800 msec waiting for the response if the processing of the corresponding command fails in the host driver. This time out is configured by WLAN_WAIT_TIME_STATS. It is observed that if the signal_poll command is issued when the device is trying to roam, the host driver times out to get the response and thus the supplicant is blocked for this duration. This results in the failed security association (4-way handshake) with the AP as the supplicant shall not receive any of the events from the driver till it gets the response from the driver as part of the signal_poll command. Thus do not process signal_poll request in the host driver if the device is in the roaming state. (Cherry picked from I0bea7027fd2fc54ac188251082e14b0d84d877aa) CRs-Fixed: 644762 Change-Id: I57a8a71a5c11794cdd3fc881d81b5c19424cd5a6
-rw-r--r--CORE/SME/src/csr/csrApiRoam.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c
index 6d2e591fedd3..e43b7625a539 100644
--- a/CORE/SME/src/csr/csrApiRoam.c
+++ b/CORE/SME/src/csr/csrApiRoam.c
@@ -15559,6 +15559,13 @@ eHalStatus csrGetStatistics(tpAniSirGlobal pMac, eCsrStatsRequesterType requeste
//smsLog(pMac, LOGW, "csrGetStatistics: wrong state curState(%d) not connected", pMac->roam.curState);
return eHAL_STATUS_FAILURE;
}
+
+ if (csrNeighborMiddleOfRoaming((tHalHandle)pMac))
+ {
+ smsLog(pMac, LOG1, FL("in the middle of roaming states"));
+ return eHAL_STATUS_FAILURE;
+ }
+
if((!statsMask) && (!callback))
{
//msg