aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-04-03 01:35:23 -0400
committerDavid S. Miller <davem@davemloft.net>2008-04-03 01:35:23 -0400
commite1ec1b8ccdf0df6000faa8c2d985ca5f94157e5a (patch)
tree4e1ca325dde22f1ac21c9da0be509e87e922e604 /net/mac80211
parentc0f39322c335412339dec16ebfd2a05ceba5ebcf (diff)
parent802fb176d8c635ae42da31b80841c26e8c7338a0 (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.c12
-rw-r--r--net/mac80211/ieee80211_sta.c9
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