diff options
author | Ido Yariv <ido@wizery.com> | 2014-03-24 09:55:45 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2014-04-09 10:47:58 +0200 |
commit | 7b8a9cdd1f959c7166611fcc58ac91e8409c10ab (patch) | |
tree | b9c05950f518f47bcfc62421bce7a899b093f82b /net | |
parent | 115b943a6ea12656088fa1ff6634c0d30815e55b (diff) | |
download | linux-stable-7b8a9cdd1f959c7166611fcc58ac91e8409c10ab.tar.gz linux-stable-7b8a9cdd1f959c7166611fcc58ac91e8409c10ab.tar.bz2 linux-stable-7b8a9cdd1f959c7166611fcc58ac91e8409c10ab.zip |
mac80211: Disable SMPS for the monitor interface
All antennas should be operational when monitoring to maximize
reception.
Signed-off-by: Ido Yariv <idox.yariv@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/mac80211/chan.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/net/mac80211/chan.c b/net/mac80211/chan.c index bd1fd8ea5105..68bee813dfad 100644 --- a/net/mac80211/chan.c +++ b/net/mac80211/chan.c @@ -492,6 +492,13 @@ void ieee80211_recalc_smps_chanctx(struct ieee80211_local *local, rx_chains_static = max(rx_chains_static, needed_static); rx_chains_dynamic = max(rx_chains_dynamic, needed_dynamic); } + + /* Disable SMPS for the monitor interface */ + sdata = rcu_dereference(local->monitor_sdata); + if (sdata && + rcu_access_pointer(sdata->vif.chanctx_conf) == &chanctx->conf) + rx_chains_dynamic = rx_chains_static = local->rx_chains; + rcu_read_unlock(); if (!local->use_chanctx) { |