Skip to contentSkip to conversation

ath9k: Fix mesh related rx filtering issue for older chips

PATCH Superseded Mohammed Shafi Shajakhan 3 participants 5 messages Sep 14, 2012 – Sep 17, 2012 Qualcomm Atheros ATH9K wireless driver

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 ath9k: Fix mesh related rx filtering issue for older chips

From: Thomas Wagner <[email protected]>

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.

---
 drivers/net/wireless/ath/ath9k/recv.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
drivers/net/wireless/ath/ath9k/recv.c +2 -2
index 4480c0c..76db0b3 100644
@@ -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;
 	}
Signature · 1 line
1.7.0.4
#1 lore raw

PATCH v2 1/1 ath9k: Fix mesh related rx filtering issue for older chips

Quoted 25 lines · Mohammed Shafi Shajakhan

From: Thomas Wagner <[email protected]>

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.

---
 drivers/net/wireless/ath/ath9k/recv.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
drivers/net/wireless/ath/ath9k/recv.c +0 -0
index 4480c0c..76db0b3 100644

drivers/net/wireless/ath/ath9k/recv.c u32 ath_calcrxfilter(struct ath_softc *sc) · line 431

Quoted 10 lines
drivers/net/wireless/ath/ath9k/recv.c +2 -2
@@ -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

#2 lore raw

PATCH v2 1/1 ath9k: Fix mesh related rx filtering issue for older chips

Hi,

Quoted 2 lines

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 at vger.kernel.org ath9k-devel at venema.h4ckr.net

Tom

#3 lore raw

PATCH v2 1/1 ath9k: Fix mesh related rx filtering issue for older chips

Hi Tom,

+ linux-wireless

Quoted 4 lines · Thomas Wagner

Hi,

Quoted 2 lines

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 [...]

Quoted 10 lines

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 at vger.kernel.org ath9k-devel at venema.h4ckr.net

thanks for the clarification.

Signature · 2 lines
thanks,
shafi
#4 lore raw

PATCH v2 1/1 ath9k: Fix mesh related rx filtering issue for older chips

Hi Tom,

Quoted 16 lines · Mohammed Shafi Shajakhan

Hi Tom,

+ linux-wireless

Quoted 11 lines · Thomas Wagner

Hi,

Quoted 3 lines

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

Quoted 9 lines
Quoted 5 lines

@Felix: Pleas forward this mail to:
linux-wireless at vger.kernel.org ath9k-devel at 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!

Signature · 2 lines
thanks,
shafi