diff options
| author | Bala Venkatesh <bjavvaji@codeaurora.org> | 2018-05-22 11:43:22 +0530 |
|---|---|---|
| committer | nshrivas <nshrivas@codeaurora.org> | 2018-05-23 05:32:09 -0700 |
| commit | 28b5d5a86ede9897b87c19e8654f1f8dd474f714 (patch) | |
| tree | 44bb4444e315ae47dbaaccd3841c8be02dcc4656 | |
| parent | 62b316db7a126f49a73c450f1c828e282ed89ae4 (diff) | |
qcacld-3.0: Start Peer update timer after TDLS mode enable
Currently, as part of concurrency tdls mode is changed to
eTDLS_SUPPORT_NOT_ENABLED. And the tdls mode is changed to
eTDLS_SUPPORT_ENABLED after first session disconnect.
But, peer update timer is not started as part of tdls mode
change. This leads to tdls connection denial.
Change-Id: Ibb345502a0431f18ad1cf43daef6d664beaa65e2
CRs-Fixed: 2243782
| -rw-r--r-- | core/hdd/src/wlan_hdd_tdls.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/core/hdd/src/wlan_hdd_tdls.c b/core/hdd/src/wlan_hdd_tdls.c index 351936082194..461d90babff8 100644 --- a/core/hdd/src/wlan_hdd_tdls.c +++ b/core/hdd/src/wlan_hdd_tdls.c @@ -1691,7 +1691,7 @@ static void wlan_hdd_tdls_set_mode(hdd_context_t *pHddCtx, ENTER(); - hdd_debug("mode %d", (int)tdls_mode); + hdd_debug("mode %d, source %d", (int)tdls_mode, source); if (0 != (wlan_hdd_validate_context(pHddCtx))) return; @@ -1993,12 +1993,18 @@ void wlan_hdd_update_tdls_info(hdd_adapter_t *adapter, bool tdls_prohibited, if (tdls_prohibited) { hdd_ctx->tdls_mode = eTDLS_SUPPORT_NOT_ENABLED; } else { - if (false == hdd_ctx->config->fEnableTDLSImplicitTrigger) + if (false == hdd_ctx->config->fEnableTDLSImplicitTrigger) { hdd_ctx->tdls_mode = eTDLS_SUPPORT_EXPLICIT_TRIGGER_ONLY; - else if (true == hdd_ctx->config->fTDLSExternalControl) + } else if (true == hdd_ctx->config->fTDLSExternalControl) { hdd_ctx->tdls_mode = eTDLS_SUPPORT_EXTERNAL_CONTROL; - else + if (!hdd_ctx->tdls_source_bitmap && + hdd_ctx->tdls_external_peer_count) + wlan_hdd_tdls_implicit_enable(hdd_tdls_ctx); + } else { hdd_ctx->tdls_mode = eTDLS_SUPPORT_ENABLED; + if (!hdd_ctx->tdls_source_bitmap) + wlan_hdd_tdls_implicit_enable(hdd_tdls_ctx); + } } tdls_param = qdf_mem_malloc(sizeof(*tdls_param)); if (!tdls_param) { |
