wlan: Insure that LFR BG scanning is not performed for any non-Infra association.
Insure that LFR BG scanning is not performed
for any non-Infra association.
Modify csrRoamIsFastRoamEnabled() to check
the persona for the association.
Return FALSE is the persona is not VOS_STA_MODE.
Change-Id: I68bad6ccdd985dce2abf1cd80724e0b30f43b18a
CR-Fixed: 423980
diff --git a/CORE/SME/inc/csrInternal.h b/CORE/SME/inc/csrInternal.h
index d84258b..559318b 100644
--- a/CORE/SME/inc/csrInternal.h
+++ b/CORE/SME/inc/csrInternal.h
@@ -1238,7 +1238,7 @@
#ifdef FEATURE_WLAN_LFR
//Returns whether "Legacy Fast Roaming" is enabled...or not
-tANI_BOOLEAN csrRoamIsFastRoamEnabled(tpAniSirGlobal pMac);
+tANI_BOOLEAN csrRoamIsFastRoamEnabled(tpAniSirGlobal pMac, tANI_U32 sessionId);
tANI_BOOLEAN csrIsChannelPresentInList( tANI_U8 *pChannelList, int numChannels, tANI_U8 channel );
VOS_STATUS csrAddToChannelListFront( tANI_U8 *pChannelList, int numChannels, tANI_U8 channel );
#endif
diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c
index 6790e4a..6e9a0f4 100644
--- a/CORE/SME/src/csr/csrApiRoam.c
+++ b/CORE/SME/src/csr/csrApiRoam.c
@@ -4431,8 +4431,22 @@
#endif
#ifdef FEATURE_WLAN_LFR
//Returns whether "Legacy Fast Roaming" is currently enabled...or not
-tANI_BOOLEAN csrRoamIsFastRoamEnabled(tpAniSirGlobal pMac)
+tANI_BOOLEAN csrRoamIsFastRoamEnabled(tpAniSirGlobal pMac, tANI_U32 sessionId)
{
+ tCsrRoamSession *pSession = NULL;
+
+ if (CSR_IS_SESSION_VALID( pMac, sessionId ) )
+ {
+ pSession = CSR_GET_SESSION( pMac, sessionId );
+ if (NULL != pSession->pCurRoamProfile)
+ {
+ if (pSession->pCurRoamProfile->csrPersona != VOS_STA_MODE)
+ {
+ return eANI_BOOLEAN_FALSE;
+ }
+ }
+ }
+
return (pMac->roam.configParam.isFastRoamIniFeatureEnabled &&
(!csrIsConcurrentSessionRunning(pMac)));
}
@@ -6813,7 +6827,7 @@
#endif
#ifdef FEATURE_WLAN_LFR
if (csrRoamIsHandoffInProgress(pMac) &&
- csrRoamIsFastRoamEnabled(pMac))
+ csrRoamIsFastRoamEnabled(pMac, sessionId))
{
// Now serialize the reassoc command.
status = csrRoamIssueReassociateCmd(pMac, sessionId);
@@ -8185,7 +8199,7 @@
}
#endif
#ifdef FEATURE_WLAN_LFR
- if (csrRoamIsFastRoamEnabled(pMac) && (csrNeighborRoamStatePreauthDone(pMac)))
+ if (csrRoamIsFastRoamEnabled(pMac, sessionId) && (csrNeighborRoamStatePreauthDone(pMac)))
{
csrNeighborRoamTranistionPreauthDoneToDisconnected(pMac);
}
@@ -8249,7 +8263,7 @@
}
#endif
#ifdef FEATURE_WLAN_LFR
- if (csrRoamIsFastRoamEnabled(pMac) && (csrNeighborRoamStatePreauthDone(pMac)))
+ if (csrRoamIsFastRoamEnabled(pMac, sessionId) && (csrNeighborRoamStatePreauthDone(pMac)))
{
csrNeighborRoamTranistionPreauthDoneToDisconnected(pMac);
}
@@ -11397,7 +11411,7 @@
// Fill in isFastTransitionEnabled
if (pMac->roam.configParam.isFastTransitionEnabled
#ifdef FEATURE_WLAN_LFR
- || csrRoamIsFastRoamEnabled(pMac)
+ || csrRoamIsFastRoamEnabled(pMac, sessionId)
#endif
)
{
@@ -11413,7 +11427,7 @@
}
#endif
#ifdef FEATURE_WLAN_LFR
- if(csrRoamIsFastRoamEnabled(pMac))
+ if(csrRoamIsFastRoamEnabled(pMac, sessionId))
{
//legacy fast roaming enabled
dwTmp = pal_cpu_to_be32(TRUE);
@@ -11814,7 +11828,7 @@
// Fill in isFastTransitionEnabled
if (pMac->roam.configParam.isFastTransitionEnabled
#ifdef FEATURE_WLAN_LFR
- || csrRoamIsFastRoamEnabled(pMac)
+ || csrRoamIsFastRoamEnabled(pMac, sessionId)
#endif
)
{
@@ -11830,7 +11844,7 @@
}
#endif
#ifdef FEATURE_WLAN_LFR
- if(csrRoamIsFastRoamEnabled(pMac))
+ if(csrRoamIsFastRoamEnabled(pMac, sessionId))
{
//legacy fast roaming enabled
dwTmp = pal_cpu_to_be32(TRUE);
@@ -14882,7 +14896,7 @@
#ifdef FEATURE_WLAN_LFR
// If Legacy Fast Roaming is enabled, signal the supplicant
// So he can send us a PMK-ID for this candidate AP.
- if (csrRoamIsFastRoamEnabled(pMac))
+ if (csrRoamIsFastRoamEnabled(pMac, CSR_SESSION_ID_INVALID))
{
// Save the bssid from the received response
palCopyMemory(pMac->hHdd, (void *)&roamInfo.bssid, (void *)pFTPreAuthRsp->preAuthbssId, sizeof(tCsrBssid));
diff --git a/CORE/SME/src/csr/csrNeighborRoam.c b/CORE/SME/src/csr/csrNeighborRoam.c
index ab0b1bd..6a5a673 100644
--- a/CORE/SME/src/csr/csrNeighborRoam.c
+++ b/CORE/SME/src/csr/csrNeighborRoam.c
@@ -306,7 +306,7 @@
else
#endif
#ifdef FEATURE_WLAN_LFR
- if (csrRoamIsFastRoamEnabled(pMac))
+ if (csrRoamIsFastRoamEnabled(pMac, CSR_SESSION_ID_INVALID))
{
if (eCSR_NEIGHBOR_ROAM_STATE_REPORT_SCAN == pNeighborRoamInfo->neighborRoamState)
{
@@ -1188,7 +1188,7 @@
#ifdef FEATURE_WLAN_LFR
// If we are supporting legacy roaming, and
// if the candidate is on the "pre-auth failed" list, ignore it.
- if (csrRoamIsFastRoamEnabled(pMac))
+ if (csrRoamIsFastRoamEnabled(pMac, CSR_SESSION_ID_INVALID))
{
if (!csrNeighborRoamIsPreauthCandidate(pMac, pScanResult->BssDescriptor.bssId))
{
@@ -1543,7 +1543,7 @@
#ifdef FEATURE_WLAN_LFR
/* If LFR is enabled, then we can register the reassoc callback here as we have some
APs in the roamable AP list */
- if (csrRoamIsFastRoamEnabled(pMac))
+ if (csrRoamIsFastRoamEnabled(pMac, CSR_SESSION_ID_INVALID))
{
/* Valid APs are found after scan. Now we can initiate pre-authentication */
CSR_NEIGHBOR_ROAM_STATE_TRANSITION(eCSR_NEIGHBOR_ROAM_STATE_REPORT_SCAN)
@@ -2988,7 +2988,7 @@
#ifdef FEATURE_WLAN_LFR
// If "Legacy Fast Roaming" is enabled
- if (csrRoamIsFastRoamEnabled(pMac))
+ if (csrRoamIsFastRoamEnabled(pMac, sessionId))
{
init_ft_flag = TRUE;
}
@@ -3466,7 +3466,7 @@
else
#endif
#ifdef FEATURE_WLAN_LFR
- if (csrRoamIsFastRoamEnabled(pMac))
+ if (csrRoamIsFastRoamEnabled(pMac, CSR_SESSION_ID_INVALID))
{
/* Always the BSS info in the head is the handoff candidate */
pBssNode = csrNeighborRoamGetRoamableAPListNextEntry(pMac, &pNeighborRoamInfo->FTRoamInfo.preAuthDoneList, NULL);
diff --git a/CORE/SME/src/csr/csrUtil.c b/CORE/SME/src/csr/csrUtil.c
index 2952946..a3365c9 100644
--- a/CORE/SME/src/csr/csrUtil.c
+++ b/CORE/SME/src/csr/csrUtil.c
@@ -4259,7 +4259,7 @@
{
if ( !csrIsProfileRSN( pProfile ) ) break;
#ifdef FEATURE_WLAN_LFR
- if (csrRoamIsFastRoamEnabled(pMac))
+ if (csrRoamIsFastRoamEnabled(pMac, sessionId))
{
// If "Legacy Fast Roaming" is enabled ALWAYS rebuild the RSN IE from
// scratch. So it contains the current PMK-IDs