summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArchana Ramachandran <archanar@codeaurora.org>2016-04-26 12:29:04 -0700
committerNandini Suresh <snandini@codeaurora.org>2016-06-29 18:41:29 -0700
commit7ba24ffc9e4df6ae2fc0db9fb53e6284a9c8242f (patch)
treeb2ba69b70a7b9e2265fb4818f8e83b928c98f19b
parent080404c945a1992c451b9a8ad7071734164ef716 (diff)
qcacld-3.0: Reject TDLS management frames during nss switch
qcacld-2.0 to qcacld-3.0 propagation When TDLS antenna switch is in progress, only TDLS teardown frame is allowed to go to firmware and all other TDLS management frames need to be blocked to avoid unpredictable behavior in the system. This change allow TDLS teardown frame and reject all other management frames. Change-Id: I5775776af376db0d4502df631ccb92e802354c11 CRs-Fixed: 968225
-rw-r--r--core/hdd/src/wlan_hdd_assoc.c6
-rw-r--r--core/hdd/src/wlan_hdd_tdls.c4
2 files changed, 10 insertions, 0 deletions
diff --git a/core/hdd/src/wlan_hdd_assoc.c b/core/hdd/src/wlan_hdd_assoc.c
index 94a347d3eb54..efa68c0c9143 100644
--- a/core/hdd/src/wlan_hdd_assoc.c
+++ b/core/hdd/src/wlan_hdd_assoc.c
@@ -3367,6 +3367,12 @@ hdd_roam_tdls_status_update_handler(hdd_adapter_t *pAdapter,
break;
}
+ if (pHddCtx->tdls_nss_switch_in_progress) {
+ hdd_err("TDLS antenna switch is in progress, ignore SHOULD_DISCOVER");
+ status = QDF_STATUS_SUCCESS;
+ break;
+ }
+
curr_peer =
wlan_hdd_tdls_get_peer(pAdapter,
pRoamInfo->peerMac.bytes,
diff --git a/core/hdd/src/wlan_hdd_tdls.c b/core/hdd/src/wlan_hdd_tdls.c
index 86bebfc4b29e..299b9e4f4666 100644
--- a/core/hdd/src/wlan_hdd_tdls.c
+++ b/core/hdd/src/wlan_hdd_tdls.c
@@ -3955,6 +3955,10 @@ static int __wlan_hdd_cfg80211_tdls_mgmt(struct wiphy *wiphy,
" TDLS mode is disabled. action %d declined.",
__func__, MAC_ADDR_ARRAY(peer), action_code);
return -ENOTSUPP;
+ } else 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;
}
}