aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorBen Greear <greearb@candelatech.com>2010-09-14 15:00:22 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-09-16 15:39:41 -0400
commitcfda669519241fccd5aa66c5a12bdae3dd04d5cd (patch)
treeb2eceb8a8da0150633c135b5f726740c47a6bea1 /drivers
parent040e539e8e8d5585e1c3d7d15fa7215d3a691258 (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.c6
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;