summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBala Venkatesh <bjavvaji@codeaurora.org>2018-05-22 11:43:22 +0530
committernshrivas <nshrivas@codeaurora.org>2018-05-23 05:32:09 -0700
commit28b5d5a86ede9897b87c19e8654f1f8dd474f714 (patch)
tree44bb4444e315ae47dbaaccd3841c8be02dcc4656
parent62b316db7a126f49a73c450f1c828e282ed89ae4 (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.c14
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) {