wlan: Enqueue preauth in sme command queue.
Serial the preauth on the SME command queue. This maintains SMEs
"contract" wth PE for "one operation at a time".
Change-Id: I05bd439198d0d70969ad065b35ed090c8d323005
CR-Fixed: 406198
diff --git a/CORE/SME/src/csr/csrNeighborRoam.c b/CORE/SME/src/csr/csrNeighborRoam.c
index ca8181b..7cf882b 100644
--- a/CORE/SME/src/csr/csrNeighborRoam.c
+++ b/CORE/SME/src/csr/csrNeighborRoam.c
@@ -259,6 +259,7 @@
NEIGHBOR_ROAM_DEBUG(pMac, LOG2, FL("Deregistering UP event neighbor lookup callback with TL. RSSI = %d"), pNeighborRoamInfo->cfgParams.neighborLookupThreshold * (-1));
/* Deregister reassoc callback. Ignore return status */
+ /*Varun TODO*/
vosStatus = WLANTL_DeregRSSIIndicationCB(pMac->roam.gVosContext, (v_S7_t)pNeighborRoamInfo->cfgParams.neighborLookupThreshold * (-1),
WLANTL_HO_THRESHOLD_DOWN,
csrNeighborRoamNeighborLookupUPCallback,
@@ -669,7 +670,8 @@
}
else
{
- status = csrRoamIssueFTPreauthReq(pMac, pNeighborRoamInfo->csrSessionId, pNeighborBssNode->pBssDescription);
+ status = csrRoamEnqueuePreauth(pMac, pNeighborRoamInfo->csrSessionId, pNeighborBssNode->pBssDescription,
+ eCsrPerformPreauth, eANI_BOOLEAN_TRUE);
if (eHAL_STATUS_SUCCESS != status)
{
smsLog(pMac, LOGE, FL("Send Preauth request to PE failed with status %d\n"), status);
@@ -684,7 +686,7 @@
/* Transition the state to preauthenticating */
CSR_NEIGHBOR_ROAM_STATE_TRANSITION(eCSR_NEIGHBOR_ROAM_STATE_PREAUTHENTICATING)
-
+#if 0
/* Start the preauth rsp timer */
status = palTimerStart(pMac->hHdd, pNeighborRoamInfo->FTRoamInfo.preAuthRspWaitTimer,
CSR_NEIGHBOR_ROAM_PREAUTH_RSP_WAIT_MULTIPLIER * pNeighborRoamInfo->cfgParams.neighborScanPeriod * PAL_TIMER_TO_MS_UNIT,
@@ -694,7 +696,7 @@
smsLog(pMac, LOGE, FL("Preauth response wait timer start failed with status %d\n"), status);
return status;
}
-
+#endif
return status;
}
@@ -721,6 +723,8 @@
tpCsrNeighborRoamControlInfo pNeighborRoamInfo = &pMac->roam.neighborRoamInfo;
eHalStatus status = eHAL_STATUS_SUCCESS;
tpCsrNeighborRoamBSSInfo pPreauthRspNode = NULL;
+
+ csrRoamDequeuePreauth(pMac);
// We can receive it in these 2 states.
VOS_ASSERT((pNeighborRoamInfo->neighborRoamState == eCSR_NEIGHBOR_ROAM_STATE_PREAUTHENTICATING) ||
@@ -736,8 +740,10 @@
if (VOS_STATUS_E_TIMEOUT != vosStatus)
{
+#if 0
/* This means we got the response from PE. Hence stop the timer */
status = palTimerStop(pMac->hHdd, pNeighborRoamInfo->FTRoamInfo.preAuthRspWaitTimer);
+#endif
pNeighborRoamInfo->FTRoamInfo.preauthRspPending = eANI_BOOLEAN_FALSE;
}