diff options
| author | Kabilan Kannan <kabilank@codeaurora.org> | 2017-02-06 17:49:48 -0800 |
|---|---|---|
| committer | qcabuildsw <qcabuildsw@localhost> | 2017-02-08 12:06:21 -0800 |
| commit | e93935d7d64bac5ca442b24f450b48d5bc7e4781 (patch) | |
| tree | 92de10ae0499212068e10c99e789683ef2f9e30e | |
| parent | 6d8000431406802afe536bcc1cdbf367546791a8 (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.c | 12 |
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); + } } } |
