2008-03-31 15:05:09

by Vladimir Koutny

[permalink] [raw]
Subject: [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.

Signed-off-by: Vladimir Koutny <[email protected]>

---
diff --git a/net/mac80211/ieee80211_sta.c b/net/mac80211/ieee80211_sta.c
index f9cf2f1..6fb179a 100644
--- a/net/mac80211/ieee80211_sta.c
+++ b/net/mac80211/ieee80211_sta.c
@@ -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;
}



2008-03-31 16:20:21

by Tomas Winkler

[permalink] [raw]
Subject: Re: [PATCH 1/2] mac80211: correct use_short_preamble handling

On Mon, Mar 31, 2008 at 6:05 PM, Vladimir Koutny <[email protected]> wrote:
> 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 <[email protected]>
>
> ---
> diff --git a/net/mac80211/ieee80211_sta.c b/net/mac80211/ieee80211_sta.c
> index f9cf2f1..6fb179a 100644
> --- a/net/mac80211/ieee80211_sta.c
> +++ b/net/mac80211/ieee80211_sta.c
> @@ -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;
> }


ACK
> --
> 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
>