summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKabilan Kannan <kabilank@codeaurora.org>2017-02-06 17:49:48 -0800
committerqcabuildsw <qcabuildsw@localhost>2017-02-08 12:06:21 -0800
commite93935d7d64bac5ca442b24f450b48d5bc7e4781 (patch)
tree92de10ae0499212068e10c99e789683ef2f9e30e
parent6d8000431406802afe536bcc1cdbf367546791a8 (diff)
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
-rw-r--r--core/hdd/src/wlan_hdd_tdls.c12
1 files changed, 11 insertions, 1 deletions
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);
+ }
}
}