aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt2x00queue.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/rt2x00queue.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/rt2x00queue.c')
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00queue.c21
1 files changed, 2 insertions, 19 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c
index 5642ccceca7c..8e68f87ab13c 100644
--- a/drivers/net/wireless/rt2x00/rt2x00queue.c
+++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
@@ -754,8 +754,6 @@ int rt2x00queue_clear_beacon(struct rt2x00_dev *rt2x00dev,
754 if (unlikely(!intf->beacon)) 754 if (unlikely(!intf->beacon))
755 return -ENOBUFS; 755 return -ENOBUFS;
756 756
757 mutex_lock(&intf->beacon_skb_mutex);
758
759 /* 757 /*
760 * Clean up the beacon skb. 758 * Clean up the beacon skb.
761 */ 759 */
@@ -768,13 +766,11 @@ int rt2x00queue_clear_beacon(struct rt2x00_dev *rt2x00dev,
768 if (rt2x00dev->ops->lib->clear_beacon) 766 if (rt2x00dev->ops->lib->clear_beacon)
769 rt2x00dev->ops->lib->clear_beacon(intf->beacon); 767 rt2x00dev->ops->lib->clear_beacon(intf->beacon);
770 768
771 mutex_unlock(&intf->beacon_skb_mutex);
772
773 return 0; 769 return 0;
774} 770}
775 771
776int rt2x00queue_update_beacon_locked(struct rt2x00_dev *rt2x00dev, 772int rt2x00queue_update_beacon(struct rt2x00_dev *rt2x00dev,
777 struct ieee80211_vif *vif) 773 struct ieee80211_vif *vif)
778{ 774{
779 struct rt2x00_intf *intf = vif_to_intf(vif); 775 struct rt2x00_intf *intf = vif_to_intf(vif);
780 struct skb_frame_desc *skbdesc; 776 struct skb_frame_desc *skbdesc;
@@ -815,19 +811,6 @@ int rt2x00queue_update_beacon_locked(struct rt2x00_dev *rt2x00dev,
815 811
816} 812}
817 813
818int rt2x00queue_update_beacon(struct rt2x00_dev *rt2x00dev,
819 struct ieee80211_vif *vif)
820{
821 struct rt2x00_intf *intf = vif_to_intf(vif);
822 int ret;
823
824 mutex_lock(&intf->beacon_skb_mutex);
825 ret = rt2x00queue_update_beacon_locked(rt2x00dev, vif);
826 mutex_unlock(&intf->beacon_skb_mutex);
827
828 return ret;
829}
830
831bool rt2x00queue_for_each_entry(struct data_queue *queue, 814bool rt2x00queue_for_each_entry(struct data_queue *queue,
832 enum queue_index start, 815 enum queue_index start,
833 enum queue_index end, 816 enum queue_index end,