aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt73usb.c
diff options
context:
space:
mode:
authorIvo van Doorn <ivdoorn@gmail.com>2008-01-06 17:40:49 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 18:09:25 -0500
commit3c4f2085e5d82639004406795653e1e4dd6720e0 (patch)
tree439cde40c92b581cf56c81ce8806126a4eee4867 /drivers/net/wireless/rt2x00/rt73usb.c
parente37ea2135be080dd25f1a2644c9132c109fa77d1 (diff)
rt2x00: Move packet filter flags
The packet filter flags don't belong in the interface structure because they are device based instead of interface based. So move the filter fields out of struct interface and into rt2x00_dev. Additionally we shouldn't change the filter based on the working mode, if such a thing is needed than mac80211 should have done that. Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt73usb.c')
-rw-r--r--drivers/net/wireless/rt2x00/rt73usb.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c
index 939341582e72..f2d1810fb3fe 100644
--- a/drivers/net/wireless/rt2x00/rt73usb.c
+++ b/drivers/net/wireless/rt2x00/rt73usb.c
@@ -1846,7 +1846,6 @@ static void rt73usb_configure_filter(struct ieee80211_hw *hw,
1846 struct dev_addr_list *mc_list) 1846 struct dev_addr_list *mc_list)
1847{ 1847{
1848 struct rt2x00_dev *rt2x00dev = hw->priv; 1848 struct rt2x00_dev *rt2x00dev = hw->priv;
1849 struct interface *intf = &rt2x00dev->interface;
1850 u32 reg; 1849 u32 reg;
1851 1850
1852 /* 1851 /*
@@ -1865,22 +1864,19 @@ static void rt73usb_configure_filter(struct ieee80211_hw *hw,
1865 * Apply some rules to the filters: 1864 * Apply some rules to the filters:
1866 * - Some filters imply different filters to be set. 1865 * - Some filters imply different filters to be set.
1867 * - Some things we can't filter out at all. 1866 * - Some things we can't filter out at all.
1868 * - Some filters are set based on interface type.
1869 */ 1867 */
1870 if (mc_count) 1868 if (mc_count)
1871 *total_flags |= FIF_ALLMULTI; 1869 *total_flags |= FIF_ALLMULTI;
1872 if (*total_flags & FIF_OTHER_BSS || 1870 if (*total_flags & FIF_OTHER_BSS ||
1873 *total_flags & FIF_PROMISC_IN_BSS) 1871 *total_flags & FIF_PROMISC_IN_BSS)
1874 *total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS; 1872 *total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS;
1875 if (is_interface_type(intf, IEEE80211_IF_TYPE_AP))
1876 *total_flags |= FIF_PROMISC_IN_BSS;
1877 1873
1878 /* 1874 /*
1879 * Check if there is any work left for us. 1875 * Check if there is any work left for us.
1880 */ 1876 */
1881 if (intf->filter == *total_flags) 1877 if (rt2x00dev->packet_filter == *total_flags)
1882 return; 1878 return;
1883 intf->filter = *total_flags; 1879 rt2x00dev->packet_filter = *total_flags;
1884 1880
1885 /* 1881 /*
1886 * When in atomic context, reschedule and let rt2x00lib 1882 * When in atomic context, reschedule and let rt2x00lib