diff options
author | Ben Greear <greearb@candelatech.com> | 2010-09-14 15:00:22 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-09-16 15:39:41 -0400 |
commit | cfda669519241fccd5aa66c5a12bdae3dd04d5cd (patch) | |
tree | b2eceb8a8da0150633c135b5f726740c47a6bea1 /drivers | |
parent | 040e539e8e8d5585e1c3d7d15fa7215d3a691258 (diff) |
ath9k: calcrxfilter should take multiple VIFs into account.
When there is more than one VIF, listen for all beacons
and ensure ATH9K_RX_FILTER_MCAST_BCAST_ALL is set.
Signed-off-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/recv.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c index 6fb3b4536045..9eceeae28e7e 100644 --- a/drivers/net/wireless/ath/ath9k/recv.c +++ b/drivers/net/wireless/ath/ath9k/recv.c | |||
@@ -448,6 +448,7 @@ u32 ath_calcrxfilter(struct ath_softc *sc) | |||
448 | rfilt |= ATH9K_RX_FILTER_CONTROL; | 448 | rfilt |= ATH9K_RX_FILTER_CONTROL; |
449 | 449 | ||
450 | if ((sc->sc_ah->opmode == NL80211_IFTYPE_STATION) && | 450 | if ((sc->sc_ah->opmode == NL80211_IFTYPE_STATION) && |
451 | (sc->nvifs <= 1) && | ||
451 | !(sc->rx.rxfilter & FIF_BCN_PRBRESP_PROMISC)) | 452 | !(sc->rx.rxfilter & FIF_BCN_PRBRESP_PROMISC)) |
452 | rfilt |= ATH9K_RX_FILTER_MYBEACON; | 453 | rfilt |= ATH9K_RX_FILTER_MYBEACON; |
453 | else | 454 | else |
@@ -462,9 +463,8 @@ u32 ath_calcrxfilter(struct ath_softc *sc) | |||
462 | if (conf_is_ht(&sc->hw->conf)) | 463 | if (conf_is_ht(&sc->hw->conf)) |
463 | rfilt |= ATH9K_RX_FILTER_COMP_BAR; | 464 | rfilt |= ATH9K_RX_FILTER_COMP_BAR; |
464 | 465 | ||
465 | if (sc->sec_wiphy || (sc->rx.rxfilter & FIF_OTHER_BSS)) { | 466 | if (sc->sec_wiphy || (sc->nvifs > 1) || |
466 | /* TODO: only needed if more than one BSSID is in use in | 467 | (sc->rx.rxfilter & FIF_OTHER_BSS)) { |
467 | * station/adhoc mode */ | ||
468 | /* The following may also be needed for other older chips */ | 468 | /* The following may also be needed for other older chips */ |
469 | if (sc->sc_ah->hw_version.macVersion == AR_SREV_VERSION_9160) | 469 | if (sc->sc_ah->hw_version.macVersion == AR_SREV_VERSION_9160) |
470 | rfilt |= ATH9K_RX_FILTER_PROM; | 470 | rfilt |= ATH9K_RX_FILTER_PROM; |