diff options
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt2500usb.c')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2500usb.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c index 531d6a02755a..3dca09d6e319 100644 --- a/drivers/net/wireless/rt2x00/rt2500usb.c +++ b/drivers/net/wireless/rt2x00/rt2500usb.c | |||
@@ -1611,7 +1611,6 @@ static void rt2500usb_configure_filter(struct ieee80211_hw *hw, | |||
1611 | struct dev_addr_list *mc_list) | 1611 | struct dev_addr_list *mc_list) |
1612 | { | 1612 | { |
1613 | struct rt2x00_dev *rt2x00dev = hw->priv; | 1613 | struct rt2x00_dev *rt2x00dev = hw->priv; |
1614 | struct interface *intf = &rt2x00dev->interface; | ||
1615 | u16 reg; | 1614 | u16 reg; |
1616 | 1615 | ||
1617 | /* | 1616 | /* |
@@ -1630,22 +1629,19 @@ static void rt2500usb_configure_filter(struct ieee80211_hw *hw, | |||
1630 | * Apply some rules to the filters: | 1629 | * Apply some rules to the filters: |
1631 | * - Some filters imply different filters to be set. | 1630 | * - Some filters imply different filters to be set. |
1632 | * - Some things we can't filter out at all. | 1631 | * - Some things we can't filter out at all. |
1633 | * - Some filters are set based on interface type. | ||
1634 | */ | 1632 | */ |
1635 | if (mc_count) | 1633 | if (mc_count) |
1636 | *total_flags |= FIF_ALLMULTI; | 1634 | *total_flags |= FIF_ALLMULTI; |
1637 | if (*total_flags & FIF_OTHER_BSS || | 1635 | if (*total_flags & FIF_OTHER_BSS || |
1638 | *total_flags & FIF_PROMISC_IN_BSS) | 1636 | *total_flags & FIF_PROMISC_IN_BSS) |
1639 | *total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS; | 1637 | *total_flags |= FIF_PROMISC_IN_BSS | FIF_OTHER_BSS; |
1640 | if (is_interface_type(intf, IEEE80211_IF_TYPE_AP)) | ||
1641 | *total_flags |= FIF_PROMISC_IN_BSS; | ||
1642 | 1638 | ||
1643 | /* | 1639 | /* |
1644 | * Check if there is any work left for us. | 1640 | * Check if there is any work left for us. |
1645 | */ | 1641 | */ |
1646 | if (intf->filter == *total_flags) | 1642 | if (rt2x00dev->packet_filter == *total_flags) |
1647 | return; | 1643 | return; |
1648 | intf->filter = *total_flags; | 1644 | rt2x00dev->packet_filter = *total_flags; |
1649 | 1645 | ||
1650 | /* | 1646 | /* |
1651 | * When in atomic context, reschedule and let rt2x00lib | 1647 | * When in atomic context, reschedule and let rt2x00lib |