aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt2500pci.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/rt2500pci.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/rt2500pci.c')
-rw-r--r--drivers/net/wireless/rt2x00/rt2500pci.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2500pci.c b/drivers/net/wireless/rt2x00/rt2500pci.c
index 8b2f54b2e631..c92163d2d9ab 100644
--- a/drivers/net/wireless/rt2x00/rt2500pci.c
+++ b/drivers/net/wireless/rt2x00/rt2500pci.c
@@ -1751,7 +1751,6 @@ static void rt2500pci_configure_filter(struct ieee80211_hw *hw,
1751 struct dev_addr_list *mc_list) 1751 struct dev_addr_list *mc_list)
1752{ 1752{
1753 struct rt2x00_dev *rt2x00dev = hw->priv; 1753 struct rt2x00_dev *rt2x00dev = hw->priv;
1754 struct interface *intf = &rt2x00dev->interface;
1755 u32 reg; 1754 u32 reg;
1756 1755
1757 /* 1756 /*
@@ -1770,22 +1769,19 @@ static void rt2500pci_configure_filter(struct ieee80211_hw *hw,
1770 * Apply some rules to the filters: 1769 * Apply some rules to the filters:
1771 * - Some filters imply different filters to be set. 1770 * - Some filters imply different filters to be set.
1772 * - Some things we can't filter out at all. 1771 * - Some things we can't filter out at all.
1773 * - Some filters are set based on interface type.
1774 */ 1772 */
1775 if (mc_count) 1773 if (mc_count)
1776 *total_flags |= FIF_ALLMULTI; 1774 *total_flags |= FIF_ALLMULTI;
1777 if (*total_flags & FIF_OTHER_BSS || 1775 if (*total_flags & FIF_OTHER_BSS ||
1778 *total_flags & FIF_PROMISC_IN_BSS) 1776 *total_flags & FIF_PROMISC_IN_BSS)
1779 *total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS; 1777 *total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS;
1780 if (is_interface_type(intf, IEEE80211_IF_TYPE_AP))
1781 *total_flags |= FIF_PROMISC_IN_BSS;
1782 1778
1783 /* 1779 /*
1784 * Check if there is any work left for us. 1780 * Check if there is any work left for us.
1785 */ 1781 */
1786 if (intf->filter == *total_flags) 1782 if (rt2x00dev->packet_filter == *total_flags)
1787 return; 1783 return;
1788 intf->filter = *total_flags; 1784 rt2x00dev->packet_filter = *total_flags;
1789 1785
1790 /* 1786 /*
1791 * Start configuration steps. 1787 * Start configuration steps.