From e93935d7d64bac5ca442b24f450b48d5bc7e4781 Mon Sep 17 00:00:00 2001 From: Kabilan Kannan Date: Mon, 6 Feb 2017 17:49:48 -0800 Subject: qcacld-3.0: Fix TDLS connection tracker restart problem In some scenarios TDLS connection tracker is not enabled correctly, When the system comes out of concurrency. Due to this TDLS connection problem observed in some corner cases. Enable TDLS connection tracker exclusively, when TDLS reenabled in the system. Change-Id: Ibabcb8887708bd3bde3d7a9819d5bcc4ebda47bf CRs-Fixed: 2003045 --- core/hdd/src/wlan_hdd_tdls.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/core/hdd/src/wlan_hdd_tdls.c b/core/hdd/src/wlan_hdd_tdls.c index 5db51dc16f8d..c4813c6e689a 100644 --- a/core/hdd/src/wlan_hdd_tdls.c +++ b/core/hdd/src/wlan_hdd_tdls.c @@ -748,6 +748,11 @@ int wlan_hdd_tdls_init(hdd_adapter_t *pAdapter) */ if (0 == WLAN_HDD_IS_TDLS_SUPPORTED_ADAPTER(pAdapter)) { mutex_unlock(&pHddCtx->tdls_lock); + /* Check whether connection tracker can be enabled in + * the system. + */ + if (pAdapter->device_mode == QDF_P2P_DEVICE_MODE) + cds_set_tdls_ct_mode(pHddCtx); return 0; } /* Check for the valid pHddTdlsCtx. If valid do not further @@ -2046,10 +2051,15 @@ void wlan_hdd_tdls_notify_disconnect(hdd_adapter_t *adapter, bool lfr_roam) if (!lfr_roam && !hdd_ctx->concurrency_marked) { temp_adapter = wlan_hdd_tdls_get_adapter( hdd_ctx); - if (NULL != temp_adapter) + if (NULL != temp_adapter) { wlan_hdd_update_tdls_info(temp_adapter, false, false); + /* Enable connection tracker, if it is implicit and + * external control mode. + */ + cds_set_tdls_ct_mode(hdd_ctx); + } } } -- cgit v1.2.3