mac80211: re-add HT disabling
authorJohannes Berg <johannes@sipsolutions.net>
Wed, 1 Jul 2009 19:27:01 +0000 (21:27 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 10 Jul 2009 19:01:52 +0000 (15:01 -0400)
The IEEE80211_STA_TKIP_WEP_USED flag is used internally to
disable HT when WEP or TKIP are used. Now that cfg80211 is
giving us the required information, we can set the flag
appropriately again.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/cfg.c

index 028f6430879d5d3c23c2ce39dece9d7b0247f171..af4733ba5be27b4e6f3732dafe1b5c6bd7028620 100644 (file)
@@ -1228,7 +1228,7 @@ static int ieee80211_assoc(struct wiphy *wiphy, struct net_device *dev,
                           struct cfg80211_assoc_request *req)
 {
        struct ieee80211_sub_if_data *sdata;
-       int ret;
+       int ret, i;
 
        sdata = IEEE80211_DEV_TO_SUB_IF(dev);
 
@@ -1236,6 +1236,14 @@ static int ieee80211_assoc(struct wiphy *wiphy, struct net_device *dev,
            !(sdata->u.mgd.flags & IEEE80211_STA_AUTHENTICATED))
                return -ENOLINK; /* not authenticated */
 
+       sdata->u.mgd.flags &= ~IEEE80211_STA_TKIP_WEP_USED;
+
+       for (i = 0; i < req->crypto.n_ciphers_pairwise; i++)
+               if (req->crypto.ciphers_pairwise[i] == WLAN_CIPHER_SUITE_WEP40 ||
+                   req->crypto.ciphers_pairwise[i] == WLAN_CIPHER_SUITE_TKIP ||
+                   req->crypto.ciphers_pairwise[i] == WLAN_CIPHER_SUITE_WEP104)
+                       sdata->u.mgd.flags |= IEEE80211_STA_TKIP_WEP_USED;
+
        sdata->u.mgd.flags &= ~IEEE80211_STA_AUTO_BSSID_SEL;
        sdata->u.mgd.flags |= IEEE80211_STA_BSSID_SET;