diff options
author | David S. Miller <davem@davemloft.net> | 2008-04-03 01:35:23 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-04-03 01:35:23 -0400 |
commit | e1ec1b8ccdf0df6000faa8c2d985ca5f94157e5a (patch) | |
tree | 4e1ca325dde22f1ac21c9da0be509e87e922e604 /net/mac80211 | |
parent | c0f39322c335412339dec16ebfd2a05ceba5ebcf (diff) | |
parent | 802fb176d8c635ae42da31b80841c26e8c7338a0 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
drivers/net/s2io.c
Diffstat (limited to 'net/mac80211')
-rw-r--r-- | net/mac80211/ieee80211.c | 12 | ||||
-rw-r--r-- | net/mac80211/ieee80211_sta.c | 9 |
2 files changed, 16 insertions, 5 deletions
diff --git a/net/mac80211/ieee80211.c b/net/mac80211/ieee80211.c index 5ee431b6256c..aaa5480e204a 100644 --- a/net/mac80211/ieee80211.c +++ b/net/mac80211/ieee80211.c | |||
@@ -375,6 +375,18 @@ static int ieee80211_open(struct net_device *dev) | |||
375 | if (need_hw_reconfig) | 375 | if (need_hw_reconfig) |
376 | ieee80211_hw_config(local); | 376 | ieee80211_hw_config(local); |
377 | 377 | ||
378 | /* | ||
379 | * ieee80211_sta_work is disabled while network interface | ||
380 | * is down. Therefore, some configuration changes may not | ||
381 | * yet be effective. Trigger execution of ieee80211_sta_work | ||
382 | * to fix this. | ||
383 | */ | ||
384 | if(sdata->vif.type == IEEE80211_IF_TYPE_STA || | ||
385 | sdata->vif.type == IEEE80211_IF_TYPE_IBSS) { | ||
386 | struct ieee80211_if_sta *ifsta = &sdata->u.sta; | ||
387 | queue_work(local->hw.workqueue, &ifsta->work); | ||
388 | } | ||
389 | |||
378 | netif_start_queue(dev); | 390 | netif_start_queue(dev); |
379 | 391 | ||
380 | return 0; | 392 | return 0; |
diff --git a/net/mac80211/ieee80211_sta.c b/net/mac80211/ieee80211_sta.c index 110eaf3ab58c..c20ef89acad6 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, | |||
360 | struct ieee80211_bss_conf *bss_conf = &sdata->bss_conf; | 360 | struct ieee80211_bss_conf *bss_conf = &sdata->bss_conf; |
361 | struct ieee80211_if_sta *ifsta = &sdata->u.sta; | 361 | struct ieee80211_if_sta *ifsta = &sdata->u.sta; |
362 | bool use_protection = (erp_value & WLAN_ERP_USE_PROTECTION) != 0; | 362 | bool use_protection = (erp_value & WLAN_ERP_USE_PROTECTION) != 0; |
363 | bool preamble_mode = (erp_value & WLAN_ERP_BARKER_PREAMBLE) != 0; | 363 | bool use_short_preamble = (erp_value & WLAN_ERP_BARKER_PREAMBLE) == 0; |
364 | DECLARE_MAC_BUF(mac); | 364 | DECLARE_MAC_BUF(mac); |
365 | u32 changed = 0; | 365 | u32 changed = 0; |
366 | 366 | ||
@@ -376,16 +376,15 @@ static u32 ieee80211_handle_erp_ie(struct ieee80211_sub_if_data *sdata, | |||
376 | changed |= BSS_CHANGED_ERP_CTS_PROT; | 376 | changed |= BSS_CHANGED_ERP_CTS_PROT; |
377 | } | 377 | } |
378 | 378 | ||
379 | if (preamble_mode != bss_conf->use_short_preamble) { | 379 | if (use_short_preamble != bss_conf->use_short_preamble) { |
380 | if (net_ratelimit()) { | 380 | if (net_ratelimit()) { |
381 | printk(KERN_DEBUG "%s: switched to %s barker preamble" | 381 | printk(KERN_DEBUG "%s: switched to %s barker preamble" |
382 | " (BSSID=%s)\n", | 382 | " (BSSID=%s)\n", |
383 | sdata->dev->name, | 383 | sdata->dev->name, |
384 | (preamble_mode == WLAN_ERP_PREAMBLE_SHORT) ? | 384 | use_short_preamble ? "short" : "long", |
385 | "short" : "long", | ||
386 | print_mac(mac, ifsta->bssid)); | 385 | print_mac(mac, ifsta->bssid)); |
387 | } | 386 | } |
388 | bss_conf->use_short_preamble = preamble_mode; | 387 | bss_conf->use_short_preamble = use_short_preamble; |
389 | changed |= BSS_CHANGED_ERP_PREAMBLE; | 388 | changed |= BSS_CHANGED_ERP_PREAMBLE; |
390 | } | 389 | } |
391 | 390 | ||