diff options
author | Stanislaw Gruszka <sgruszka@redhat.com> | 2014-06-05 07:52:23 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-06-19 15:49:14 -0400 |
commit | 283dafa1c69475596701da7767df471c0a71d8fb (patch) | |
tree | b6f11ab5c0c8fdb540a3dbadae0593519d37407e /drivers/net/wireless/rt2x00/rt2x00mac.c | |
parent | 7d8831bb1bfbf8db896bfc1de9d0b3bc7a8e60f0 (diff) |
rt2x00: change beaconing locking
This patch is needed for further changes to keep global variables
consistent when changing beaconing on diffrent vif's.
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2x00mac.c')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00mac.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c index 671836210744..d63636bbb9d7 100644 --- a/drivers/net/wireless/rt2x00/rt2x00mac.c +++ b/drivers/net/wireless/rt2x00/rt2x00mac.c | |||
@@ -624,6 +624,7 @@ void rt2x00mac_bss_info_changed(struct ieee80211_hw *hw, | |||
624 | * Start/stop beaconing. | 624 | * Start/stop beaconing. |
625 | */ | 625 | */ |
626 | if (changes & BSS_CHANGED_BEACON_ENABLED) { | 626 | if (changes & BSS_CHANGED_BEACON_ENABLED) { |
627 | mutex_lock(&intf->beacon_skb_mutex); | ||
627 | if (!bss_conf->enable_beacon && intf->enable_beacon) { | 628 | if (!bss_conf->enable_beacon && intf->enable_beacon) { |
628 | rt2x00dev->intf_beaconing--; | 629 | rt2x00dev->intf_beaconing--; |
629 | intf->enable_beacon = false; | 630 | intf->enable_beacon = false; |
@@ -639,9 +640,7 @@ void rt2x00mac_bss_info_changed(struct ieee80211_hw *hw, | |||
639 | * Last beaconing interface disabled | 640 | * Last beaconing interface disabled |
640 | * -> stop beacon queue. | 641 | * -> stop beacon queue. |
641 | */ | 642 | */ |
642 | mutex_lock(&intf->beacon_skb_mutex); | ||
643 | rt2x00queue_stop_queue(rt2x00dev->bcn); | 643 | rt2x00queue_stop_queue(rt2x00dev->bcn); |
644 | mutex_unlock(&intf->beacon_skb_mutex); | ||
645 | } | 644 | } |
646 | } else if (bss_conf->enable_beacon && !intf->enable_beacon) { | 645 | } else if (bss_conf->enable_beacon && !intf->enable_beacon) { |
647 | rt2x00dev->intf_beaconing++; | 646 | rt2x00dev->intf_beaconing++; |
@@ -658,11 +657,10 @@ void rt2x00mac_bss_info_changed(struct ieee80211_hw *hw, | |||
658 | * First beaconing interface enabled | 657 | * First beaconing interface enabled |
659 | * -> start beacon queue. | 658 | * -> start beacon queue. |
660 | */ | 659 | */ |
661 | mutex_lock(&intf->beacon_skb_mutex); | ||
662 | rt2x00queue_start_queue(rt2x00dev->bcn); | 660 | rt2x00queue_start_queue(rt2x00dev->bcn); |
663 | mutex_unlock(&intf->beacon_skb_mutex); | ||
664 | } | 661 | } |
665 | } | 662 | } |
663 | mutex_unlock(&intf->beacon_skb_mutex); | ||
666 | } | 664 | } |
667 | 665 | ||
668 | /* | 666 | /* |