aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/rt2x00')
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00.h1
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00dev.c10
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00mac.c5
3 files changed, 1 insertions, 15 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
index 39d7d9baafdd..ad70946c3b5f 100644
--- a/drivers/net/wireless/rt2x00/rt2x00.h
+++ b/drivers/net/wireless/rt2x00/rt2x00.h
@@ -826,7 +826,6 @@ struct rt2x00_dev {
826 * due to RTNL locking requirements. 826 * due to RTNL locking requirements.
827 */ 827 */
828 struct work_struct intf_work; 828 struct work_struct intf_work;
829 struct work_struct filter_work;
830 829
831 /* 830 /*
832 * Data queue arrays for RX, TX and Beacon. 831 * Data queue arrays for RX, TX and Beacon.
diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c
index 9ab70e435b5d..16b560a661e3 100644
--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
@@ -118,14 +118,6 @@ void rt2x00lib_toggle_rx(struct rt2x00_dev *rt2x00dev, enum dev_state state)
118 rt2x00link_start_tuner(rt2x00dev); 118 rt2x00link_start_tuner(rt2x00dev);
119} 119}
120 120
121static void rt2x00lib_packetfilter_scheduled(struct work_struct *work)
122{
123 struct rt2x00_dev *rt2x00dev =
124 container_of(work, struct rt2x00_dev, filter_work);
125
126 rt2x00dev->ops->lib->config_filter(rt2x00dev, rt2x00dev->packet_filter);
127}
128
129static void rt2x00lib_intf_scheduled_iter(void *data, u8 *mac, 121static void rt2x00lib_intf_scheduled_iter(void *data, u8 *mac,
130 struct ieee80211_vif *vif) 122 struct ieee80211_vif *vif)
131{ 123{
@@ -859,7 +851,6 @@ int rt2x00lib_probe_dev(struct rt2x00_dev *rt2x00dev)
859 * Initialize configuration work. 851 * Initialize configuration work.
860 */ 852 */
861 INIT_WORK(&rt2x00dev->intf_work, rt2x00lib_intf_scheduled); 853 INIT_WORK(&rt2x00dev->intf_work, rt2x00lib_intf_scheduled);
862 INIT_WORK(&rt2x00dev->filter_work, rt2x00lib_packetfilter_scheduled);
863 854
864 /* 855 /*
865 * Allocate queue array. 856 * Allocate queue array.
@@ -907,7 +898,6 @@ void rt2x00lib_remove_dev(struct rt2x00_dev *rt2x00dev)
907 /* 898 /*
908 * Stop all work. 899 * Stop all work.
909 */ 900 */
910 cancel_work_sync(&rt2x00dev->filter_work);
911 cancel_work_sync(&rt2x00dev->intf_work); 901 cancel_work_sync(&rt2x00dev->intf_work);
912 902
913 /* 903 /*
diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c
index 3011aea4fead..967d3b55c897 100644
--- a/drivers/net/wireless/rt2x00/rt2x00mac.c
+++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
@@ -430,10 +430,7 @@ void rt2x00mac_configure_filter(struct ieee80211_hw *hw,
430 return; 430 return;
431 rt2x00dev->packet_filter = *total_flags; 431 rt2x00dev->packet_filter = *total_flags;
432 432
433 if (!test_bit(DRIVER_REQUIRE_SCHEDULED, &rt2x00dev->flags)) 433 rt2x00dev->ops->lib->config_filter(rt2x00dev, *total_flags);
434 rt2x00dev->ops->lib->config_filter(rt2x00dev, *total_flags);
435 else
436 ieee80211_queue_work(rt2x00dev->hw, &rt2x00dev->filter_work);
437} 434}
438EXPORT_SYMBOL_GPL(rt2x00mac_configure_filter); 435EXPORT_SYMBOL_GPL(rt2x00mac_configure_filter);
439 436