aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt61pci.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/rt61pci.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/rt61pci.c')
-rw-r--r--drivers/net/wireless/rt2x00/rt61pci.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c
index fc36320a5f1..5c78c4cf80a 100644
--- a/drivers/net/wireless/rt2x00/rt61pci.c
+++ b/drivers/net/wireless/rt2x00/rt61pci.c
@@ -2310,7 +2310,6 @@ static void rt61pci_configure_filter(struct ieee80211_hw *hw,
2310 struct dev_addr_list *mc_list) 2310 struct dev_addr_list *mc_list)
2311{ 2311{
2312 struct rt2x00_dev *rt2x00dev = hw->priv; 2312 struct rt2x00_dev *rt2x00dev = hw->priv;
2313 struct interface *intf = &rt2x00dev->interface;
2314 u32 reg; 2313 u32 reg;
2315 2314
2316 /* 2315 /*
@@ -2329,22 +2328,19 @@ static void rt61pci_configure_filter(struct ieee80211_hw *hw,
2329 * Apply some rules to the filters: 2328 * Apply some rules to the filters:
2330 * - Some filters imply different filters to be set. 2329 * - Some filters imply different filters to be set.
2331 * - Some things we can't filter out at all. 2330 * - Some things we can't filter out at all.
2332 * - Some filters are set based on interface type.
2333 */ 2331 */
2334 if (mc_count) 2332 if (mc_count)
2335 *total_flags |= FIF_ALLMULTI; 2333 *total_flags |= FIF_ALLMULTI;
2336 if (*total_flags & FIF_OTHER_BSS || 2334 if (*total_flags & FIF_OTHER_BSS ||
2337 *total_flags & FIF_PROMISC_IN_BSS) 2335 *total_flags & FIF_PROMISC_IN_BSS)
2338 *total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS; 2336 *total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS;
2339 if (is_interface_type(intf, IEEE80211_IF_TYPE_AP))
2340 *total_flags |= FIF_PROMISC_IN_BSS;
2341 2337
2342 /* 2338 /*
2343 * Check if there is any work left for us. 2339 * Check if there is any work left for us.
2344 */ 2340 */
2345 if (intf->filter == *total_flags) 2341 if (rt2x00dev->packet_filter == *total_flags)
2346 return; 2342 return;
2347 intf->filter = *total_flags; 2343 rt2x00dev->packet_filter = *total_flags;
2348 2344
2349 /* 2345 /*
2350 * Start configuration steps. 2346 * Start configuration steps.