From 05da368631dfe44a6c2baf923c4a0aec0948e764 Mon Sep 17 00:00:00 2001 From: Kabilan Kannan Date: Mon, 6 Feb 2017 19:01:33 -0800 Subject: [PATCH] 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 7eb63120cab9..b8763a3de09a 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 @@ -2050,10 +2055,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); + } } }