Skip to contentSkip to conversation

mac80211: correct use_short_preamble handling

PATCH In review Vladimir Koutny 2 participants 2 messages Mar 31, 2008 mac80211

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 mac80211: correct use_short_preamble handling

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.

---

net/mac80211/ieee80211_sta.c +4 -5
index f9cf2f1..6fb179a 100644
@@ -360,7 +360,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;
 
@@ -376,16 +376,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;
 	}
 
#1 lore raw
Quoted 29 lines · Vladimir Koutny

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.

---

net/mac80211/ieee80211_sta.c +2 -2
index f9cf2f1..6fb179a 100644
@@ -360,7 +360,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;
 
@@ -376,16 +376,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",

net/mac80211/ieee80211_sta.c static u32 ieee80211_handle_erp_ie(struct ieee80211_sub_if_data *sdata, · line 389

Quoted 10 lines
net/mac80211/ieee80211_sta.c +2 -3
                              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;
       }

ACK

Quoted 5 lines
net/mac80211/ieee80211_sta.c +0 -1
--

To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html