mac80211: correct use_short_preamble handling
authorVladimir Koutny <vlado@work.ksp.sk>
Mon, 31 Mar 2008 15:05:03 +0000 (17:05 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 1 Apr 2008 19:44:08 +0000 (15:44 -0400)
ERP IE bit for preamble mode is 0 for short and 1 for long, not the other
way around. This fixes the value reported to the driver via
bss_conf->use_short_preamble field.

Signed-off-by: Vladimir Koutny <vlado@ksp.sk>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/ieee80211_sta.c

index 9aeed53..e0c72d0 100644 (file)
@@ -319,7 +319,7 @@ static u32 ieee80211_handle_erp_ie(struct ieee80211_sub_if_data *sdata,
        struct ieee80211_bss_conf *bss_conf = &sdata->bss_conf;
        struct ieee80211_if_sta *ifsta = &sdata->u.sta;
        bool use_protection = (erp_value & WLAN_ERP_USE_PROTECTION) != 0;
-       bool preamble_mode = (erp_value & WLAN_ERP_BARKER_PREAMBLE) != 0;
+       bool use_short_preamble = (erp_value & WLAN_ERP_BARKER_PREAMBLE) == 0;
        DECLARE_MAC_BUF(mac);
        u32 changed = 0;
 
@@ -335,16 +335,15 @@ static u32 ieee80211_handle_erp_ie(struct ieee80211_sub_if_data *sdata,
                changed |= BSS_CHANGED_ERP_CTS_PROT;
        }
 
-       if (preamble_mode != bss_conf->use_short_preamble) {
+       if (use_short_preamble != bss_conf->use_short_preamble) {
                if (net_ratelimit()) {
                        printk(KERN_DEBUG "%s: switched to %s barker preamble"
                               " (BSSID=%s)\n",
                               sdata->dev->name,
-                              (preamble_mode == WLAN_ERP_PREAMBLE_SHORT) ?
-                                       "short" : "long",
+                              use_short_preamble ? "short" : "long",
                               print_mac(mac, ifsta->bssid));
                }
-               bss_conf->use_short_preamble = preamble_mode;
+               bss_conf->use_short_preamble = use_short_preamble;
                changed |= BSS_CHANGED_ERP_PREAMBLE;
        }