diff options
author | Aniket Nagarnaik <aniketn@marvell.com> | 2015-09-18 06:32:08 -0700 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2015-09-29 10:47:34 +0300 |
commit | 2c3da961268ff7f4a6c958fee081c58aef2e5c1d (patch) | |
tree | ed9b941de9f06b50379789eee4eba97e1b18c717 /drivers/net/wireless/mwifiex | |
parent | 02421dd3f6af1b6becb6d9a690a2b70c73c03a7a (diff) | |
download | blackbird-obmc-linux-2c3da961268ff7f4a6c958fee081c58aef2e5c1d.tar.gz blackbird-obmc-linux-2c3da961268ff7f4a6c958fee081c58aef2e5c1d.zip |
mwifiex: don't always include ht/vht info in tdls confirm frame
Current TDLS implementation always includes ht/vht information
in tdls setup confirm frame which causes teardown by legacy
peer station after TDLS handshake. We will inclue ht/vht
capabilities in tdls setup confirm frame only if peer station
supports it to fix this problem.
Signed-off-by: Aniket Nagarnaik <aniketn@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless/mwifiex')
-rw-r--r-- | drivers/net/wireless/mwifiex/tdls.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/net/wireless/mwifiex/tdls.c b/drivers/net/wireless/mwifiex/tdls.c index b3e163de9899..9275f9c3f869 100644 --- a/drivers/net/wireless/mwifiex/tdls.c +++ b/drivers/net/wireless/mwifiex/tdls.c @@ -204,6 +204,12 @@ mwifiex_tdls_add_ht_oper(struct mwifiex_private *priv, const u8 *mac, return -1; } + if (!(le16_to_cpu(sta_ptr->tdls_cap.ht_capb.cap_info))) { + mwifiex_dbg(priv->adapter, WARN, + "TDLS peer doesn't support ht capabilities\n"); + return 0; + } + pos = (void *)skb_put(skb, sizeof(struct ieee80211_ht_operation) + 2); *pos++ = WLAN_EID_HT_OPERATION; *pos++ = sizeof(struct ieee80211_ht_operation); @@ -252,6 +258,12 @@ static int mwifiex_tdls_add_vht_oper(struct mwifiex_private *priv, return -1; } + if (!(le32_to_cpu(sta_ptr->tdls_cap.vhtcap.vht_cap_info))) { + mwifiex_dbg(adapter, WARN, + "TDLS peer doesn't support vht capabilities\n"); + return 0; + } + if (!mwifiex_is_bss_in_11ac_mode(priv)) { if (sta_ptr->tdls_cap.extcap.ext_capab[7] & WLAN_EXT_CAPA8_TDLS_WIDE_BW_ENABLED) { |