aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-07-08 19:30:17 -0400
committerDavid S. Miller <davem@davemloft.net>2008-07-08 19:30:17 -0400
commit7c3ceb4a409e2b838700edf081d61a8a4c921e79 (patch)
tree4dbf54cc23d2796b278e22fc6f5460b9b451c956 /net/mac80211
parent54dceb008ffcbe003bea9017cad1227a83b6fc3f (diff)
parentb2238566401f01eb796e75750213c7b0fce396b2 (diff)
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: drivers/net/wireless/iwlwifi/iwl-3945.c net/mac80211/mlme.c
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/main.c4
-rw-r--r--net/mac80211/mlme.c13
2 files changed, 11 insertions, 6 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index cc756e93e6c8..cf477ad39dac 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -535,8 +535,6 @@ static int ieee80211_stop(struct net_device *dev)
535 local->sta_hw_scanning = 0; 535 local->sta_hw_scanning = 0;
536 } 536 }
537 537
538 flush_workqueue(local->hw.workqueue);
539
540 sdata->u.sta.flags &= ~IEEE80211_STA_PRIVACY_INVOKED; 538 sdata->u.sta.flags &= ~IEEE80211_STA_PRIVACY_INVOKED;
541 kfree(sdata->u.sta.extra_ie); 539 kfree(sdata->u.sta.extra_ie);
542 sdata->u.sta.extra_ie = NULL; 540 sdata->u.sta.extra_ie = NULL;
@@ -560,6 +558,8 @@ static int ieee80211_stop(struct net_device *dev)
560 558
561 ieee80211_led_radio(local, 0); 559 ieee80211_led_radio(local, 0);
562 560
561 flush_workqueue(local->hw.workqueue);
562
563 tasklet_disable(&local->tx_pending_tasklet); 563 tasklet_disable(&local->tx_pending_tasklet);
564 tasklet_disable(&local->tasklet); 564 tasklet_disable(&local->tasklet);
565 } 565 }
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 37ea04f5bab9..dbc8cf454bc0 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -564,15 +564,14 @@ static void ieee80211_set_associated(struct net_device *dev,
564 sdata->bss_conf.ht_bss_conf = &conf->ht_bss_conf; 564 sdata->bss_conf.ht_bss_conf = &conf->ht_bss_conf;
565 } 565 }
566 566
567 netif_carrier_on(dev);
568 ifsta->flags |= IEEE80211_STA_PREV_BSSID_SET; 567 ifsta->flags |= IEEE80211_STA_PREV_BSSID_SET;
569 memcpy(ifsta->prev_bssid, sdata->u.sta.bssid, ETH_ALEN); 568 memcpy(ifsta->prev_bssid, sdata->u.sta.bssid, ETH_ALEN);
570 memcpy(wrqu.ap_addr.sa_data, sdata->u.sta.bssid, ETH_ALEN); 569 memcpy(wrqu.ap_addr.sa_data, sdata->u.sta.bssid, ETH_ALEN);
571 ieee80211_sta_send_associnfo(dev, ifsta); 570 ieee80211_sta_send_associnfo(dev, ifsta);
572 } else { 571 } else {
572 netif_carrier_off(dev);
573 ieee80211_sta_tear_down_BA_sessions(dev, ifsta->bssid); 573 ieee80211_sta_tear_down_BA_sessions(dev, ifsta->bssid);
574 ifsta->flags &= ~IEEE80211_STA_ASSOCIATED; 574 ifsta->flags &= ~IEEE80211_STA_ASSOCIATED;
575 netif_carrier_off(dev);
576 changed |= ieee80211_reset_erp_info(dev); 575 changed |= ieee80211_reset_erp_info(dev);
577 576
578 sdata->bss_conf.assoc_ht = 0; 577 sdata->bss_conf.assoc_ht = 0;
@@ -586,6 +585,10 @@ static void ieee80211_set_associated(struct net_device *dev,
586 585
587 sdata->bss_conf.assoc = assoc; 586 sdata->bss_conf.assoc = assoc;
588 ieee80211_bss_info_change_notify(sdata, changed); 587 ieee80211_bss_info_change_notify(sdata, changed);
588
589 if (assoc)
590 netif_carrier_on(dev);
591
589 wrqu.ap_addr.sa_family = ARPHRD_ETHER; 592 wrqu.ap_addr.sa_family = ARPHRD_ETHER;
590 wireless_send_event(dev, SIOCGIWAP, &wrqu, NULL); 593 wireless_send_event(dev, SIOCGIWAP, &wrqu, NULL);
591} 594}
@@ -3694,8 +3697,10 @@ static int ieee80211_sta_find_ibss(struct net_device *dev,
3694 spin_unlock_bh(&local->sta_bss_lock); 3697 spin_unlock_bh(&local->sta_bss_lock);
3695 3698
3696#ifdef CONFIG_MAC80211_IBSS_DEBUG 3699#ifdef CONFIG_MAC80211_IBSS_DEBUG
3697 printk(KERN_DEBUG " sta_find_ibss: selected %s current " 3700 if (found)
3698 "%s\n", print_mac(mac, bssid), print_mac(mac2, ifsta->bssid)); 3701 printk(KERN_DEBUG " sta_find_ibss: selected %s current "
3702 "%s\n", print_mac(mac, bssid),
3703 print_mac(mac2, ifsta->bssid));
3699#endif /* CONFIG_MAC80211_IBSS_DEBUG */ 3704#endif /* CONFIG_MAC80211_IBSS_DEBUG */
3700 if (found && memcmp(ifsta->bssid, bssid, ETH_ALEN) != 0 && 3705 if (found && memcmp(ifsta->bssid, bssid, ETH_ALEN) != 0 &&
3701 (bss = ieee80211_rx_bss_get(dev, bssid, 3706 (bss = ieee80211_rx_bss_get(dev, bssid,