mac80211: Make sure non-HT connection when IEEE80211_STA_TKIP_WEP_USED is set
authorVasanthakumar Thiagarajan <vasanth@atheros.com>
Wed, 11 Feb 2009 16:48:49 +0000 (22:18 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 27 Feb 2009 19:51:39 +0000 (14:51 -0500)
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>
net/mac80211/mlme.c

index fbb766a..bf872cb 100644 (file)
@@ -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;