On 2012-09-14 4:49 PM, Mohammed Shafi Shajakhan wrote: > From: Thomas Wagner <Thomas.Wagner@xxxxxxxx> > > We need to have the promiscus mode enabled for older > chipsets(i.e, rule out many frames being filtered in the > hardware itself) if 'FIF_OTHER_BSS' flag is set, when we > start the mesh mode. Fix this by enabling promiscus > mode for all the chipsets whose macversion <= AR9160 > chipsets. This should fix > https://bugzilla.kernel.org/show_bug.cgi?id=45591 > > shafi: made the fix generic by having the frame filtering > disabled for chipsets older than AR9280. > > Cc: Javier Cardona <javier@xxxxxxxxxxx> > Signed-off-by: Thomas Wagner <Thomas.Wagner@xxxxxxxx> > Signed-off-by: Mohammed Shafi Shajakhan <mohammed@xxxxxxxxxxxxxxxx> > --- > drivers/net/wireless/ath/ath9k/recv.c | 4 ++-- > 1 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c > index 4480c0c..76db0b3 100644 > --- a/drivers/net/wireless/ath/ath9k/recv.c > +++ b/drivers/net/wireless/ath/ath9k/recv.c > @@ -424,8 +424,8 @@ u32 ath_calcrxfilter(struct ath_softc *sc) > rfilt |= ATH9K_RX_FILTER_COMP_BAR; > > if (sc->nvifs > 1 || (sc->rx.rxfilter & FIF_OTHER_BSS)) { > - /* The following may also be needed for other older chips */ > - if (sc->sc_ah->hw_version.macVersion == AR_SREV_VERSION_9160) > + /* This is needed for older chips, especially for mesh mode */ > + if (sc->sc_ah->hw_version.macVersion <= AR_SREV_VERSION_9160) > rfilt |= ATH9K_RX_FILTER_PROM; > rfilt |= ATH9K_RX_FILTER_MCAST_BCAST_ALL; > } I'm really not sure about this being tied to sc->nvifs. If it's mesh related, how about just adding a check for the number of mesh interfaces instead of piggy-backing onto something potentially unrelated. - Felix -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html