aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt2x00mac.c
diff options
context:
space:
mode:
authorStanislaw Gruszka <sgruszka@redhat.com>2014-06-05 07:52:23 -0400
committerJohn W. Linville <linville@tuxdriver.com>2014-06-19 15:49:14 -0400
commit283dafa1c69475596701da7767df471c0a71d8fb (patch)
treeb6f11ab5c0c8fdb540a3dbadae0593519d37407e /drivers/net/wireless/rt2x00/rt2x00mac.c
parent7d8831bb1bfbf8db896bfc1de9d0b3bc7a8e60f0 (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.c6
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 /*