diff options
author | David S. Miller <davem@davemloft.net> | 2008-07-08 19:30:17 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-07-08 19:30:17 -0400 |
commit | 7c3ceb4a409e2b838700edf081d61a8a4c921e79 (patch) | |
tree | 4dbf54cc23d2796b278e22fc6f5460b9b451c956 /net/mac80211 | |
parent | 54dceb008ffcbe003bea9017cad1227a83b6fc3f (diff) | |
parent | b2238566401f01eb796e75750213c7b0fce396b2 (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.c | 4 | ||||
-rw-r--r-- | net/mac80211/mlme.c | 13 |
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, |