Fixed assert for stopping uninitialized timers.

Checked ini config for TDLS implicit trigger.

CRs-Fixed: 447613
Change-Id: Ie8a9fd9b01ce0057bf78b990f158d2015d34c3ee
diff --git a/CORE/HDD/src/wlan_hdd_tdls.c b/CORE/HDD/src/wlan_hdd_tdls.c
old mode 100644
new mode 100755
index 62cb864..838fff3
--- a/CORE/HDD/src/wlan_hdd_tdls.c
+++ b/CORE/HDD/src/wlan_hdd_tdls.c
@@ -63,7 +63,8 @@
     tANI_S8         ap_rssi;
 } tdlsCtx_t;
 
-tdlsCtx_t *pHddTdlsCtx;
+static tdlsCtx_t *pHddTdlsCtx;
+static v_BOOL_t tdlsImplicitTrigger;
 
 void wlan_hdd_freeTdlsPeer(void);
 
@@ -248,7 +249,8 @@
 
     pHddTdlsCtx->dev = dev;
 
-    if(FALSE == pHddCtx->cfg_ini->fEnableTDLSImplicitTrigger)
+    tdlsImplicitTrigger = pHddCtx->cfg_ini->fEnableTDLSImplicitTrigger;
+    if(FALSE == tdlsImplicitTrigger)
     {
         hddLog(VOS_TRACE_LEVEL_ERROR, "%s TDLS Implicit trigger not enabled!", __func__);
         return -1;
@@ -281,21 +283,12 @@
 
 void wlan_hdd_tdls_exit()
 {
-    hdd_adapter_t *pAdapter;
-    hdd_context_t *pHddCtx;
-
-    if (NULL == pHddTdlsCtx) return;
-
-    pAdapter = WLAN_HDD_GET_PRIV_PTR(pHddTdlsCtx->dev);
-    pHddCtx = WLAN_HDD_GET_CTX( pAdapter );
-
-    if(FALSE == pHddCtx->cfg_ini->fEnableTDLSSupport)
-    {
+    if (NULL == pHddTdlsCtx) {
         hddLog(VOS_TRACE_LEVEL_WARN, "%s TDLS not enabled, exiting!", __func__);
         return;
     }
 
-    if(FALSE != pHddCtx->cfg_ini->fEnableTDLSImplicitTrigger) {
+    if(FALSE != tdlsImplicitTrigger) {
         vos_timer_stop(&pHddTdlsCtx->peerDiscoverTimer);
         vos_timer_destroy(&pHddTdlsCtx->peerDiscoverTimer);
         vos_timer_stop(&pHddTdlsCtx->peerUpdateTimer);
@@ -303,8 +296,9 @@
     }
 
     wlan_hdd_freeTdlsPeer();
-    if(pHddTdlsCtx)
-        vos_mem_free(pHddTdlsCtx);
+
+    vos_mem_free(pHddTdlsCtx);
+    pHddTdlsCtx = NULL;
 }
 
 int wlan_hdd_tdls_set_link_status(u8 *mac, int status)
@@ -340,11 +334,13 @@
 
     curr_peer->link_status = status;
 
-    if (eTDLS_LINK_CONNECTED == status) {
-        vos_timer_init(&curr_peer->peerIdleTimer,
-                         VOS_TIMER_TYPE_SW,
-                         wlan_hdd_tdls_idle_cb,
-                         curr_peer);
+    if(FALSE != tdlsImplicitTrigger) {
+        if (eTDLS_LINK_CONNECTED == status) {
+            vos_timer_init(&curr_peer->peerIdleTimer,
+                             VOS_TIMER_TYPE_SW,
+                             wlan_hdd_tdls_idle_cb,
+                             curr_peer);
+        }
     }
 
     return status;
@@ -549,7 +545,8 @@
 
 int wlan_hdd_tdls_set_params(tdls_config_params_t *config)
 {
-    if (NULL == pHddTdlsCtx) return -1;
+    if (NULL == pHddTdlsCtx ||
+        FALSE == tdlsImplicitTrigger) return -1;
 
     vos_timer_stop( &pHddTdlsCtx->peerDiscoverTimer);
 
@@ -687,8 +684,10 @@
     curr_peer->link_status = eTDLS_LINK_NOT_CONNECTED;
     curr_peer->staId = 0;
     curr_peer->rssi = -120;
-    vos_timer_stop( &curr_peer->peerIdleTimer );
-    vos_timer_destroy( &curr_peer->peerIdleTimer );
+    if(FALSE != tdlsImplicitTrigger) {
+        vos_timer_stop( &curr_peer->peerIdleTimer );
+        vos_timer_destroy( &curr_peer->peerIdleTimer );
+    }
 }
 
 void wlan_hdd_freeTdlsPeer(void)