aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt2x00mac.c
diff options
context:
space:
mode:
authorStanislaw Gruszka <sgruszka@redhat.com>2014-06-05 07:52:26 -0400
committerJohn W. Linville <linville@tuxdriver.com>2014-06-19 15:49:15 -0400
commitddb405506cc2273e2a367383831b50053464929b (patch)
tree0cc23793856fa1387b9d3866f92393e79e319670 /drivers/net/wireless/rt2x00/rt2x00mac.c
parent88ff2f45f23eb0f0e262251b34edb4582ce8e188 (diff)
rt2x00: change order when stop beaconing
When no beaconing is needed, first stop beacon queue (disable beaconing globally) to avoid possible sending of not prepared beacon on short period after clearing beacon and before stop of BCN queue. 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.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c
index d63636bbb9d7..e5935ea3719f 100644
--- a/drivers/net/wireless/rt2x00/rt2x00mac.c
+++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
@@ -628,12 +628,6 @@ void rt2x00mac_bss_info_changed(struct ieee80211_hw *hw,
628 if (!bss_conf->enable_beacon && intf->enable_beacon) { 628 if (!bss_conf->enable_beacon && intf->enable_beacon) {
629 rt2x00dev->intf_beaconing--; 629 rt2x00dev->intf_beaconing--;
630 intf->enable_beacon = false; 630 intf->enable_beacon = false;
631 /*
632 * Clear beacon in the H/W for this vif. This is needed
633 * to disable beaconing on this particular interface
634 * and keep it running on other interfaces.
635 */
636 rt2x00queue_clear_beacon(rt2x00dev, vif);
637 631
638 if (rt2x00dev->intf_beaconing == 0) { 632 if (rt2x00dev->intf_beaconing == 0) {
639 /* 633 /*
@@ -642,6 +636,12 @@ void rt2x00mac_bss_info_changed(struct ieee80211_hw *hw,
642 */ 636 */
643 rt2x00queue_stop_queue(rt2x00dev->bcn); 637 rt2x00queue_stop_queue(rt2x00dev->bcn);
644 } 638 }
639 /*
640 * Clear beacon in the H/W for this vif. This is needed
641 * to disable beaconing on this particular interface
642 * and keep it running on other interfaces.
643 */
644 rt2x00queue_clear_beacon(rt2x00dev, vif);
645 } else if (bss_conf->enable_beacon && !intf->enable_beacon) { 645 } else if (bss_conf->enable_beacon && !intf->enable_beacon) {
646 rt2x00dev->intf_beaconing++; 646 rt2x00dev->intf_beaconing++;
647 intf->enable_beacon = true; 647 intf->enable_beacon = true;