2012-09-14 14:46:31

by Mohammed Shafi Shajakhan

[permalink] [raw]
Subject: [PATCH] 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

Signed-off-by: Mohammed Shafi Shajakhan <[email protected]>
---
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;
}
--
1.7.0.4



2012-09-14 14:51:26

by Mohammed Shafi Shajakhan

[permalink] [raw]
Subject: Re: [PATCH] ath9k: Fix mesh related filtering issue for older chips

On Friday 14 September 2012 08:16 PM, Mohammed Shafi Shajakhan wrote:
> 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
>
> Signed-off-by: Mohammed Shafi Shajakhan <[email protected]>
> ---
> 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;
> }
>

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


--
thanks,
shafi