wlan: Cleanup Rx path if disassoc is not being set OTA.

During roam, disassoc is not sent to the old AP OTA. With changes
introduced in CL658483, there is no path to clean-up the old STA, and
subsequently, no confirmation gets posted to SME. This results in
roaming failure.
This is being fixed by continuing to clean-up the Rx path if disassoc is
not sent OTA.

Also, CL658483 unintentionally reverted CL652530 which fixed CR413820.
This checkin reintroduces CL652530.

Change-Id: Ia851d9bc699241f1d1286746ee0b57cd37ab287b
CR-Fixed: 422087
diff --git a/CORE/MAC/src/pe/lim/limSendManagementFrames.c b/CORE/MAC/src/pe/lim/limSendManagementFrames.c
index 77f7b7c..3a376a3 100644
--- a/CORE/MAC/src/pe/lim/limSendManagementFrames.c
+++ b/CORE/MAC/src/pe/lim/limSendManagementFrames.c
@@ -3767,16 +3767,43 @@
         }
 
 #ifdef WLAN_FEATURE_VOWIFI_11R
-        if  ( (psessionEntry->limSystemRole == eLIM_STA_ROLE ) &&
-                (
+        if  ( (psessionEntry->limSystemRole == eLIM_STA_ROLE ) && 
+                ( 
 #ifdef FEATURE_WLAN_CCX
-                 (psessionEntry->isCCXconnection ) ||
+                 (psessionEntry->isCCXconnection ) || 
+#endif
+#ifdef FEATURE_WLAN_LFR
+                 (psessionEntry->isFastRoamIniFeatureEnabled ) ||
 #endif
                  (psessionEntry->is11Rconnection )) &&
-                (pMlmDisassocReq->reasonCode != eSIR_MAC_DISASSOC_DUE_TO_FTHANDOFF_REASON))
+                (pMlmDisassocReq->reasonCode != 
+                 eSIR_MAC_DISASSOC_DUE_TO_FTHANDOFF_REASON))
         {
-            PELOGE(limLog(pMac, LOGE, FL("FT Preauth Session Cleanup \n"));)
-                limFTCleanup(pMac);
+            PELOGE(limLog(pMac, LOGE, 
+                   FL("FT Preauth Session (%p,%d) Cleanup\n"),
+                   psessionEntry, psessionEntry->peSessionId););
+            limFTCleanup(pMac);
+        }
+        else 
+        {
+            PELOGE(limLog(pMac, LOGE, 
+                   FL("No FT Preauth Session Cleanup in role %d"
+#ifdef FEATURE_WLAN_CCX
+                   " isCCX %d"
+#endif
+#ifdef FEATURE_WLAN_LFR
+                   " isLFR %d"
+#endif
+                   " is11r %d reason %d\n"),
+                   psessionEntry->limSystemRole, 
+#ifdef FEATURE_WLAN_CCX
+                   psessionEntry->isCCXconnection,
+#endif
+#ifdef FEATURE_WLAN_LFR
+                   psessionEntry->isFastRoamIniFeatureEnabled,
+#endif
+                   psessionEntry->is11Rconnection,
+                   pMlmDisassocReq->reasonCode););
         }
 #endif
 
@@ -3937,7 +3964,7 @@
     {
         txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
     }
-
+    
     if (waitForAck)
     {
         // Queue Disassociation frame in high priority WQ
@@ -3967,7 +3994,7 @@
             return;
         }
     }
-    else
+    else 
     {
         // Queue Disassociation frame in high priority WQ
         halstatus = halTxFrame( pMac, pPacket, ( tANI_U16 ) nBytes,
@@ -4104,7 +4131,7 @@
     {
         txFlag |= HAL_USE_BD_RATE2_FOR_MANAGEMENT_FRAME;
     }
-
+    
     if (waitForAck)
     {
         // Queue Disassociation frame in high priority WQ