wlan: Process deauth from reassoc AP to trigger disconnect.

Existing PE/LIM code adopts "make before break" principle, whereas LFR
uses "break before make" policy. Upon receiving a deauth from
reassociating AP, PE/LIM attempts to change channel and switch to the
old AP. Since the previous session was already torn down (by SME during
fast roaming) soon after pre-auth, we fail to process channel switch
response due to no pLimMlmReassocReq and throw an assert. Due to this,
we land in a limbo state and never disconnect. This eventually leads to
several timeouts, HDD queue fill errors since HDD/supplicant still think
that there is an active connection.
This is being fixed by sending an assoc response confirmation with a
failure status to SME (upon receipt of deauth) so that SME layer
triggers the clean-up and tears down the connection.

Change-Id: I040b7cedb87e43647964fd438cf78f66ba683c53
CR-Fixed: 411088
diff --git a/CORE/MAC/src/pe/lim/limAssocUtils.c b/CORE/MAC/src/pe/lim/limAssocUtils.c
index a0807c3..dd10532 100644
--- a/CORE/MAC/src/pe/lim/limAssocUtils.c
+++ b/CORE/MAC/src/pe/lim/limAssocUtils.c
@@ -1394,6 +1394,28 @@
    }
 }
 
+void
+limPostReassocFailure(tpAniSirGlobal pMac,
+                      tSirResultCodes resultCode,
+                      tANI_U16 protStatusCode,tpPESession psessionEntry)
+{
+    tLimMlmReassocCnf   mlmReassocCnf;
+
+    psessionEntry->limMlmState = eLIM_MLM_LINK_ESTABLISHED_STATE;
+    MTRACE(macTrace(pMac, TRACE_CODE_MLM_STATE, psessionEntry->peSessionId, eLIM_MLM_LINK_ESTABLISHED_STATE));
+
+    // 'Change' timer for future activations
+    limDeactivateAndChangeTimer(pMac, eLIM_REASSOC_FAIL_TIMER);
+
+    mlmReassocCnf.resultCode = resultCode;
+    mlmReassocCnf.protStatusCode = protStatusCode;
+    /* Update PE session Id */
+    mlmReassocCnf.sessionId = psessionEntry->peSessionId;
+    limPostSmeMessage(pMac,
+                      LIM_MLM_REASSOC_CNF,
+                      (tANI_U32 *) &mlmReassocCnf);
+} /*** end limPostReassocFailure() ***/
+
 /**
  * limRestorePreReassocState()
  *