diff options
author | Ivo van Doorn <ivdoorn@gmail.com> | 2008-03-31 09:24:53 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-04-01 17:14:08 -0400 |
commit | e0b005fa1479045fe879944036268af3ebcd1835 (patch) | |
tree | 0c5c72716cdf76f48be7cc38aa8ae5e86396a47e /drivers/net/wireless/rt2x00/rt2500pci.c | |
parent | bc5213f468b4d0520a06e27ea2cc9724bc5b896c (diff) |
rt2x00: TO_DS filter depends on intf_ap_count
The TO_DS filter does not only depend on the FIF_PROMISC_IN_BSS flag
provided by mac80211, but also on the intf_ap_count count.
This makes sense, since when Master mode is active, we should all frames
that are send to the active AP (the device itself).
This means that when an interface is added we should force the
packet filter to be updated during the next mac80211 call of
configure_filter() to make sure the intf_ap_count field is checked.
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.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2500pci.c b/drivers/net/wireless/rt2x00/rt2500pci.c index 1bdb873b65f2..54c9a75b549b 100644 --- a/drivers/net/wireless/rt2x00/rt2500pci.c +++ b/drivers/net/wireless/rt2x00/rt2500pci.c | |||
@@ -291,7 +291,8 @@ static void rt2500pci_config_filter(struct rt2x00_dev *rt2x00dev, | |||
291 | rt2x00_set_field32(®, RXCSR0_DROP_NOT_TO_ME, | 291 | rt2x00_set_field32(®, RXCSR0_DROP_NOT_TO_ME, |
292 | !(filter_flags & FIF_PROMISC_IN_BSS)); | 292 | !(filter_flags & FIF_PROMISC_IN_BSS)); |
293 | rt2x00_set_field32(®, RXCSR0_DROP_TODS, | 293 | rt2x00_set_field32(®, RXCSR0_DROP_TODS, |
294 | !(filter_flags & FIF_PROMISC_IN_BSS)); | 294 | !(filter_flags & FIF_PROMISC_IN_BSS) && |
295 | !rt2x00dev->intf_ap_count); | ||
295 | rt2x00_set_field32(®, RXCSR0_DROP_VERSION_ERROR, 1); | 296 | rt2x00_set_field32(®, RXCSR0_DROP_VERSION_ERROR, 1); |
296 | rt2x00_set_field32(®, RXCSR0_DROP_MCAST, | 297 | rt2x00_set_field32(®, RXCSR0_DROP_MCAST, |
297 | !(filter_flags & FIF_ALLMULTI)); | 298 | !(filter_flags & FIF_ALLMULTI)); |