wlan: Address kernel panic by destroying tdls timers on driver unload

During driver unload, TDLS timers are destroyed only if "connState"
is set to "eConnectionState_Associated" or "eConnectionState_Connecting".
But "connState" variable can be altered in other thread context due to
which, TDLS timers may not be destroyed during driver unload and may lead
to kernel panic if the timer callback functions invoked after driver
unload.

To address this issue, destroy tdls timers during driver unload without
depending on "connState" variable.

Change-Id: Iaaafeb19dfee79eb77fa61e9ccdbbce5b514339f
CRs-Fixed: 865420
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index b17a135..6486769 100755
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -7242,14 +7242,14 @@
       case WLAN_HDD_P2P_DEVICE:
       {
          hdd_station_ctx_t *pstation = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter);
+#ifdef FEATURE_WLAN_TDLS
+         mutex_lock(&pHddCtx->tdls_lock);
+         wlan_hdd_tdls_exit(pAdapter, TRUE);
+         mutex_unlock(&pHddCtx->tdls_lock);
+#endif
          if( hdd_connIsConnected(pstation) ||
              (pstation->conn_info.connState == eConnectionState_Connecting) )
          {
-#ifdef FEATURE_WLAN_TDLS
-              mutex_lock(&pHddCtx->tdls_lock);
-              wlan_hdd_tdls_exit(pAdapter, TRUE);
-              mutex_unlock(&pHddCtx->tdls_lock);
-#endif
             if (pWextState->roamProfile.BSSType == eCSR_BSS_TYPE_START_IBSS)
                 halStatus = sme_RoamDisconnect(pHddCtx->hHal,
                                              pAdapter->sessionId,