From mboxrd@z Thu Jan 1 00:00:00 1970 From: Felix Fietkau Date: Fri, 14 Sep 2012 17:18:59 +0200 Subject: [ath9k-devel] [PATCH v2] ath9k: Fix mesh related rx filtering issue for older chips In-Reply-To: <1347634168-20706-1-git-send-email-mohammed@qca.qualcomm.com> References: <1347634168-20706-1-git-send-email-mohammed@qca.qualcomm.com> Message-ID: <50534AE3.3060107@openwrt.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: ath9k-devel@lists.ath9k.org On 2012-09-14 4:49 PM, Mohammed Shafi Shajakhan wrote: > From: Thomas Wagner > > 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 > Signed-off-by: Thomas Wagner > Signed-off-by: Mohammed Shafi Shajakhan > --- > 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