Message ID | 1347634168-20706-1-git-send-email-mohammed@qca.qualcomm.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
On 2012-09-14 4:49 PM, Mohammed Shafi Shajakhan wrote: > From: Thomas Wagner <Thomas.Wagner@hs-rm.de> > > 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@cozybit.com> > Signed-off-by: Thomas Wagner <Thomas.Wagner@hs-rm.de> > Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com> > --- > 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Tom, + linux-wireless On Saturday 15 September 2012 12:24 AM, Thomas Wagner wrote: > Hi, > >> 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 [...] > No, it is not mesh related! > Several frames where filtered out. > I discovered this on trying to set up a mesh. > But the where filtered frames beyond the mesh: e.g. a beacon of 802.11b Sitecom Router > > @Felix: Pleas forward this mail to: > linux-wireless@vger.kernel.org > ath9k-devel@venema.h4ckr.net > > thanks for the clarification.
Hi Tom, On Monday 17 September 2012 10:47 AM, Mohammed Shafi Shajakhan wrote: > Hi Tom, > > + linux-wireless > > On Saturday 15 September 2012 12:24 AM, Thomas Wagner wrote: >> Hi, >> >>> 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 [...] >> No, it is not mesh related! >> Several frames where filtered out. >> I discovered this on trying to set up a mesh. >> But the where filtered frames beyond the mesh: e.g. a beacon of >> 802.11b Sitecom Router >> >> @Felix: Pleas forward this mail to: >> linux-wireless@vger.kernel.org >> ath9k-devel@venema.h4ckr.net >> >> > > thanks for the clarification. > > will send a v3 soon changing the subject and commit log mentioning generically that the older hardware chipsets seem to filter some necessary wifi frames ?. thanks!
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; }