wlan: Avoid the race conditon when deauth ind is stuck.
Currently, when Deauth is received by AP and OS, deauth Ind
is stuck in CSR and deauth Req is not processed by lim and
LIM sends the deauth resp to SME.As a result, LIM clean up
does not happen and peer is not removed.When STA connects to
AP again, it crashed.
Changes are done to process the Deauth frame and remove the
peer to avoid the crash.
Change-Id: I4f145c4515ad4dde3d516d05a3af80eea3c806a7
CRs-Fixed: 689824
diff --git a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
index 6d47e3b..f590573 100644
--- a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
+++ b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
@@ -2821,7 +2821,19 @@
// Send Deauthentication request to MLM below
break;
-
+ case eLIM_SME_WT_DEAUTH_STATE:
+ /*
+ * PE Recieved a Deauth frame. Normally it gets
+ * DEAUTH_CNF but it received DEAUTH_REQ. Which
+ * means host is also trying to disconnect.
+ * PE can continue processing DEAUTH_REQ and send
+ * the response instead of failing the request.
+ * SME will anyway ignore DEAUTH_IND that was sent
+ * for deauth frame.
+ */
+ limLog(pMac, LOG1, FL("Rcvd SME_DEAUTH_REQ while in "
+ "SME_WT_DEAUTH_STATE. "));
+ break;
default:
/**
* STA is not in a state to deauthenticate with