2015-07-09 11:50:16

by Janusz Dziedzic

[permalink] [raw]
Subject: [PATCH 1/2] ath9k: setup rxfilter for all chanctx

While mac80211 setup this per HW, set same
rxfilter configuration for all chanctx.

Signed-off-by: Janusz Dziedzic <[email protected]>
---
drivers/net/wireless/ath/ath9k/main.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index b7b77e0..3de829f 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -1459,13 +1459,15 @@ static void ath9k_configure_filter(struct ieee80211_hw *hw,
u64 multicast)
{
struct ath_softc *sc = hw->priv;
+ struct ath_chanctx *ctx;
u32 rfilt;

changed_flags &= SUPPORTED_FILTERS;
*total_flags &= SUPPORTED_FILTERS;

spin_lock_bh(&sc->chan_lock);
- sc->cur_chan->rxfilter = *total_flags;
+ ath_for_each_chanctx(sc, ctx)
+ ctx->rxfilter = *total_flags;
spin_unlock_bh(&sc->chan_lock);

ath9k_ps_wakeup(sc);
--
1.9.1



2015-07-09 11:50:19

by Janusz Dziedzic

[permalink] [raw]
Subject: [PATCH 2/2] ath9k: setup rxfilter when offchannel

Setup rxfiler correctly for offchannel ctx.

This fix problem we didn't configure rxfilter, next
didn't receive probe requests and next failed
p2p_find. This was seen when ath9k loaded with
use_chanctx=1

Signed-off-by: Janusz Dziedzic <[email protected]>
---
drivers/net/wireless/ath/ath9k/main.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
index 3de829f..b45084d 100644
--- a/drivers/net/wireless/ath/ath9k/main.c
+++ b/drivers/net/wireless/ath/ath9k/main.c
@@ -1468,6 +1468,7 @@ static void ath9k_configure_filter(struct ieee80211_hw *hw,
spin_lock_bh(&sc->chan_lock);
ath_for_each_chanctx(sc, ctx)
ctx->rxfilter = *total_flags;
+ sc->offchannel.chan.rxfilter = *total_flags;
spin_unlock_bh(&sc->chan_lock);

ath9k_ps_wakeup(sc);
--
1.9.1