wlan: Ignore disconnect/deauth indications if LFR MBB in progress
Ignore deauth/disassoc/channel switch/delete sta indication from fw
when lfr mbb in progress.
Change-Id: I9b7f78fc376e1395645bd05a8f022146947ff3a6
CRs-Fixed: 2002137
diff --git a/CORE/MAC/src/pe/lim/limProcessDeauthFrame.c b/CORE/MAC/src/pe/lim/limProcessDeauthFrame.c
index a7d4df8..ef1056e 100644
--- a/CORE/MAC/src/pe/lim/limProcessDeauthFrame.c
+++ b/CORE/MAC/src/pe/lim/limProcessDeauthFrame.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2014, 2017 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -36,6 +36,9 @@
#include "limSerDesUtils.h"
#include "schApi.h"
#include "limSendMessages.h"
+#ifdef WLAN_FEATURE_LFR_MBB
+#include "lim_mbb.h"
+#endif
@@ -77,7 +80,6 @@
pBody = WDA_GET_RX_MPDU_DATA(pRxPacketInfo);
-
if ((eLIM_STA_ROLE == psessionEntry->limSystemRole) && (eLIM_SME_WT_DEAUTH_STATE == psessionEntry->limSmeState))
{
/*Every 15th deauth frame will be logged in kmsg*/
@@ -229,6 +231,14 @@
{
pRoamSessionEntry = peFindSessionByBssid(pMac, psessionEntry->limReAssocbssId, &roamSessionId);
}
+
+#ifdef WLAN_FEATURE_LFR_MBB
+ if (lim_is_mbb_reassoc_in_progress(pMac, psessionEntry)) {
+ limLog(pMac, LOGE, FL("Ignore Deauth frame as LFR MBB in progress"));
+ return;
+ }
+#endif
+
if (limIsReassocInProgress(pMac,psessionEntry) || limIsReassocInProgress(pMac,pRoamSessionEntry)) {
if (!IS_REASSOC_BSSID(pMac,pHdr->sa,psessionEntry)) {
PELOGE(limLog(pMac, LOGE, FL("Rcv Deauth from unknown/different "