summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKabilan Kannan <kabilank@codeaurora.org>2016-11-14 01:17:04 -0800
committerqcabuildsw <qcabuildsw@localhost>2016-12-14 14:08:05 -0800
commit79c1593f70641388dc26f50ecc12bef5118f93c7 (patch)
treec5bfecc1cfb557bf838bfe4a422252f881ce4783
parent1fa40974e5cbced6e445fe2722b8fd017ea8f73c (diff)
downloadqcacld-79c1593f70641388dc26f50ecc12bef5118f93c7.tar.gz
qcacld-3.0: Fix TDLS teardown failure in concurrency scenario
All the TDLS action frames are blocked in the host driver, if the active session count is more than one. Due to this TDLS teardown action frame is blocked in the driver, when the drive establish concurrent sessions. Add changes in host driver to allow TDLS teardown frame, regardless of active session count. Change-Id: If10bacdf2419b6b66c401ab95a79e1334c95064d CRs-Fixed: 1089443
-rw-r--r--core/hdd/src/wlan_hdd_tdls.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/core/hdd/src/wlan_hdd_tdls.c b/core/hdd/src/wlan_hdd_tdls.c
index 13122ca602..ea8ce48fdb 100644
--- a/core/hdd/src/wlan_hdd_tdls.c
+++ b/core/hdd/src/wlan_hdd_tdls.c
@@ -4032,20 +4032,20 @@ static int __wlan_hdd_cfg80211_tdls_mgmt(struct wiphy *wiphy,
return -EAGAIN;
}
- if (!cds_check_is_tdls_allowed(pAdapter->device_mode)) {
- hdd_err("TDLS not allowed, reject TDLS MGMT, action_code=%d",
- action_code);
- return -EPERM;
- }
-
/* other than teardown frame, mgmt frames are not sent if disabled */
if (SIR_MAC_TDLS_TEARDOWN != action_code) {
- /* if tdls_mode is disabled to respond to peer's request */
+ if (!cds_check_is_tdls_allowed(pAdapter->device_mode)) {
+ hdd_err("TDLS not allowed, reject TDLS MGMT, action_code=%d",
+ action_code);
+ return -EPERM;
+ }
+ /* if tdls_mode is disabled, then decline the peer's request */
if (eTDLS_SUPPORT_DISABLED == pHddCtx->tdls_mode) {
hdd_notice(MAC_ADDRESS_STR " TDLS mode is disabled. action %d declined.",
MAC_ADDR_ARRAY(peer), action_code);
return -ENOTSUPP;
- } else if (pHddCtx->tdls_nss_switch_in_progress) {
+ }
+ if (pHddCtx->tdls_nss_switch_in_progress) {
hdd_err("TDLS antenna switch in progress, action %d declined for "
MAC_ADDRESS_STR, action_code, MAC_ADDR_ARRAY(peer));
return -EAGAIN;