wlan: Back out Fix for WLAN driver hang, because of stuck in WDI.

Back out changelist 657132

Change-Id: Ia6b701b6734fca085f77e14185f44898883c3d20
CR-Fixed: 419963
diff --git a/CORE/WDI/CP/src/wlan_qct_wdi.c b/CORE/WDI/CP/src/wlan_qct_wdi.c
index 54c2c86..5eef0c9 100644
--- a/CORE/WDI/CP/src/wlan_qct_wdi.c
+++ b/CORE/WDI/CP/src/wlan_qct_wdi.c
@@ -7139,8 +7139,6 @@
      *join request will be queued*/
     pWDICtx->bAssociationInProgress = eWLAN_PAL_FALSE;
     wpalMutexRelease(&pWDICtx->wptMutex);
-    /* Reload the driver if we hit this error condition */
-    wpalWlanReload();
     return WDI_STATUS_E_NOT_ALLOWED; 
   }
 
@@ -7561,31 +7559,29 @@
     WPAL_TRACE( eWLAN_MODULE_DAL_CTRL, eWLAN_PAL_TRACE_LEVEL_ERROR,
         "%s: BSS does not yet exist. ucBssIdx %d",
         __func__, pwdiDelBSSParams->ucBssIdx);
-    /* Allow the DEL_BSS to be processed by the HAL ,
-     * This can come if some error condition happens 
-     * during the join process 
-     * Hit this condition if WDI cleans up BSS table 
-     * as part of the set link state with WDI_LINK_IDLE_STATE*/
+
+    wpalMutexRelease(&pWDICtx->wptMutex);
+
+    return WDI_STATUS_E_NOT_ALLOWED;
   }
-  else
+
+  /*------------------------------------------------------------------------
+    Check if this BSS is being currently processed or queued,
+    if queued - queue the new request as well
+  ------------------------------------------------------------------------*/
+  if ( eWLAN_PAL_TRUE == pBSSSes->bAssocReqQueued )
   {
-    /*------------------------------------------------------------------------
-      Check if this BSS is being currently processed or queued,
-      if queued - queue the new request as well
-    ------------------------------------------------------------------------*/
-    if ( eWLAN_PAL_TRUE == pBSSSes->bAssocReqQueued )
-    {
-      WPAL_TRACE( eWLAN_MODULE_DAL_CTRL, eWLAN_PAL_TRACE_LEVEL_WARN,
-                "%s: Association sequence for this BSS exists but currently queued. ucBssIdx %d", 
-                __func__, pwdiDelBSSParams->ucBssIdx);
-  
-      wdiStatus = WDI_QueueAssocRequest( pWDICtx, pBSSSes, pEventData);
-  
-      wpalMutexRelease(&pWDICtx->wptMutex);
-  
-      return wdiStatus;
-    }
+    WPAL_TRACE( eWLAN_MODULE_DAL_CTRL, eWLAN_PAL_TRACE_LEVEL_WARN,
+              "%s: Association sequence for this BSS exists but currently queued. ucBssIdx %d",
+              __func__, pwdiDelBSSParams->ucBssIdx);
+
+    wdiStatus = WDI_QueueAssocRequest( pWDICtx, pBSSSes, pEventData);
+
+    wpalMutexRelease(&pWDICtx->wptMutex);
+
+    return wdiStatus;
   }
+
   /*-----------------------------------------------------------------------
     If we receive a Del BSS request for an association that is already in
     progress, it indicates that the assoc has failed => we no longer have
@@ -7623,7 +7619,7 @@
   /*Fill in the message request structure*/
 
   /*BSS Index is saved on config BSS response and Post Assoc Response */
-  halBssReqMsg.deleteBssParams.bssIdx = pwdiDelBSSParams->ucBssIdx; 
+  halBssReqMsg.deleteBssParams.bssIdx = pBSSSes->ucBSSIdx;
 
   wpalMemoryCopy( pSendBuffer+usDataOffset,
                   &halBssReqMsg.deleteBssParams,
@@ -14506,8 +14502,6 @@
   wdiDelBSSParams.wdiStatus   =   WDI_HAL_2_WDI_STATUS(
                                  halDelBssRspMsg.deleteBssRspParams.status);
 
-  wdiDelBSSParams.ucBssIdx = halDelBssRspMsg.deleteBssRspParams.bssIdx;
-
   wpalMutexAcquire(&pWDICtx->wptMutex);
 
   /*------------------------------------------------------------------------
@@ -14525,29 +14519,35 @@
   {
     WPAL_TRACE( eWLAN_MODULE_DAL_CTRL, eWLAN_PAL_TRACE_LEVEL_ERROR,
               "Association sequence for this BSS does not yet exist or "
-              "association no longer in progress ");
+              "association no longer in progress - mysterious HAL response");
+
+    WDI_DetectedDeviceError( pWDICtx, WDI_ERR_BASIC_OP_FAILURE);
+
+    wpalMutexRelease(&pWDICtx->wptMutex);
+    return WDI_STATUS_E_NOT_ALLOWED;
   }
-  else
+
+  /*Extract BSSID for the response to UMAC*/
+  wpalMemoryCopy(wdiDelBSSParams.macBSSID,
+                 pBSSSes->macBSSID, WDI_MAC_ADDR_LEN);
+
+  wdiDelBSSParams.ucBssIdx = halDelBssRspMsg.deleteBssRspParams.bssIdx;
+
+  /*-----------------------------------------------------------------------
+    The current session will be deleted
+  -----------------------------------------------------------------------*/
+  WDI_DeleteSession(pWDICtx, pBSSSes);
+
+
+  /* Delete the BCAST STA entry from the STA table if SAP/GO session is deleted */
+  if(WDI_INFRA_AP_MODE == pBSSSes->wdiBssType)
   {
-    /*Extract BSSID for the response to UMAC*/
-    wpalMemoryCopy(wdiDelBSSParams.macBSSID,
-                   pBSSSes->macBSSID, WDI_MAC_ADDR_LEN);
-  
-    /*-----------------------------------------------------------------------
-      The current session will be deleted
-    -----------------------------------------------------------------------*/
-    WDI_DeleteSession(pWDICtx, pBSSSes);
-  
-  
-    /* Delete the BCAST STA entry from the STA table if SAP/GO session is deleted */
-    if(WDI_INFRA_AP_MODE == pBSSSes->wdiBssType)
-    {
-      (void)WDI_STATableDelSta( pWDICtx, pBSSSes->bcastStaIdx );
-    }
-    
-     /* Delete the STA's in this BSS */
-    WDI_STATableBSSDelSta(pWDICtx, halDelBssRspMsg.deleteBssRspParams.bssIdx);
+    (void)WDI_STATableDelSta( pWDICtx, pBSSSes->bcastStaIdx );
   }
+
+   /* Delete the STA's in this BSS */
+  WDI_STATableBSSDelSta(pWDICtx, halDelBssRspMsg.deleteBssRspParams.bssIdx);
+
   wpalMutexRelease(&pWDICtx->wptMutex);
 
   /*Notify UMAC*/