summaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
authorVasanthakumar Thiagarajan <vasanth@atheros.com>2009-02-11 22:18:49 +0530
committerJohn W. Linville <linville@tuxdriver.com>2009-02-27 14:51:39 -0500
commit53d6f81c7814690ba096584c733e5deaa34fdd8a (patch)
tree5ede985bff803ecd6d0f5246bcd55c0d35304221 /net/mac80211
parentf5ac2b9eb58f5efad83f2d0e7fa464e8980ecfc9 (diff)
downloadop-kernel-dev-53d6f81c7814690ba096584c733e5deaa34fdd8a.zip
op-kernel-dev-53d6f81c7814690ba096584c733e5deaa34fdd8a.tar.gz
mac80211: Make sure non-HT connection when IEEE80211_STA_TKIP_WEP_USED is set
It is possible that some broken AP might send HT IEs in it's assoc response even though the STA has not sent them in assoc req when WEP/TKIP is used as pairwise cipher suite. Also it is important to check this bit before enabling ht mode in beacon receive path. Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/mlme.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index fbb766a..bf872cb 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -1528,7 +1528,8 @@ static void ieee80211_rx_mgmt_assoc_resp(struct ieee80211_sub_if_data *sdata,
elems.wmm_param_len);
if (elems.ht_info_elem && elems.wmm_param &&
- (ifsta->flags & IEEE80211_STA_WMM_ENABLED))
+ (ifsta->flags & IEEE80211_STA_WMM_ENABLED) &&
+ !(ifsta->flags & IEEE80211_STA_TKIP_WEP_USED))
changed |= ieee80211_enable_ht(sdata, elems.ht_info_elem,
ap_ht_cap_flags);
@@ -1954,7 +1955,8 @@ static void ieee80211_rx_mgmt_beacon(struct ieee80211_sub_if_data *sdata,
erp_valid, erp_value);
- if (elems.ht_cap_elem && elems.ht_info_elem && elems.wmm_param) {
+ if (elems.ht_cap_elem && elems.ht_info_elem && elems.wmm_param &&
+ !(ifsta->flags & IEEE80211_STA_TKIP_WEP_USED)) {
struct sta_info *sta;
struct ieee80211_supported_band *sband;
u16 ap_ht_cap_flags;
OpenPOWER on IntegriCloud