Skip to contentSkip to conversation

ath9k: Fix mesh related filtering issue for older chips

PATCH Superseded Mohammed Shafi Shajakhan 1 participant 2 messages Sep 14, 2012 Qualcomm Atheros ATH9K wireless driver

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

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

From: Mohammed Shafi Shajakhan <[email protected]>

We need to have the promiscus mode enabled for older chipset(ie 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 chipsets whose macversion <= AR9160 chipsets. This should fix
https://bugzilla.kernel.org/show_bug.cgi?id=45591

---
 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 1/1 ath9k: Fix mesh related filtering issue for older chips

Quoted 21 lines · Mohammed Shafi Shajakhan

From: Mohammed Shafi Shajakhan <[email protected]>

We need to have the promiscus mode enabled for older chipset(ie 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 chipsets whose macversion <= AR9160 chipsets. This should fix
https://bugzilla.kernel.org/show_bug.cgi?id=45591

---
  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;
  	}

John, kindly drop this. Had resent the v2 with proper author name (Thomas) who suggested the change.

Signature · 2 lines
thanks,
shafi