aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt2400pci.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/rt2400pci.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/rt2400pci.c')
-rw-r--r--drivers/net/wireless/rt2x00/rt2400pci.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2400pci.c b/drivers/net/wireless/rt2x00/rt2400pci.c
index 9eed9e90fc0c..b042eb551cde 100644
--- a/drivers/net/wireless/rt2x00/rt2400pci.c
+++ b/drivers/net/wireless/rt2x00/rt2400pci.c
@@ -1422,7 +1422,6 @@ static void rt2400pci_configure_filter(struct ieee80211_hw *hw,
1422 struct dev_addr_list *mc_list) 1422 struct dev_addr_list *mc_list)
1423{ 1423{
1424 struct rt2x00_dev *rt2x00dev = hw->priv; 1424 struct rt2x00_dev *rt2x00dev = hw->priv;
1425 struct interface *intf = &rt2x00dev->interface;
1426 u32 reg; 1425 u32 reg;
1427 1426
1428 /* 1427 /*
@@ -1441,21 +1440,18 @@ static void rt2400pci_configure_filter(struct ieee80211_hw *hw,
1441 * Apply some rules to the filters: 1440 * Apply some rules to the filters:
1442 * - Some filters imply different filters to be set. 1441 * - Some filters imply different filters to be set.
1443 * - Some things we can't filter out at all. 1442 * - Some things we can't filter out at all.
1444 * - Some filters are set based on interface type.
1445 */ 1443 */
1446 *total_flags |= FIF_ALLMULTI; 1444 *total_flags |= FIF_ALLMULTI;
1447 if (*total_flags & FIF_OTHER_BSS || 1445 if (*total_flags & FIF_OTHER_BSS ||
1448 *total_flags & FIF_PROMISC_IN_BSS) 1446 *total_flags & FIF_PROMISC_IN_BSS)
1449 *total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS; 1447 *total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS;
1450 if (is_interface_type(intf, IEEE80211_IF_TYPE_AP))
1451 *total_flags |= FIF_PROMISC_IN_BSS;
1452 1448
1453 /* 1449 /*
1454 * Check if there is any work left for us. 1450 * Check if there is any work left for us.
1455 */ 1451 */
1456 if (intf->filter == *total_flags) 1452 if (rt2x00dev->packet_filter == *total_flags)
1457 return; 1453 return;
1458 intf->filter = *total_flags; 1454 rt2x00dev->packet_filter = *total_flags;
1459 1455
1460 /* 1456 /*
1461 * Start configuration steps. 1457 * Start configuration steps.