ath9k: Fix mesh related filtering issue for older chips
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
@@ -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
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=45591Signed-off-by Mohammed Shafi Shajakhan <[email protected]>--- drivers/net/wireless/ath/ath9k/recv.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)drivers/net/wireless/ath/ath9k/recv.c +0
-0
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