diff options
author | John W. Linville <linville@tuxdriver.com> | 2013-03-01 13:52:03 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2013-03-01 13:52:03 -0500 |
commit | 98b7ff9a4977e4f4f451c30288b197ad79e5ab7f (patch) | |
tree | b0aae5739f08a2c3fd822e2b86dd1a369fd2e0a2 /net/mac80211/cfg.c | |
parent | net/phy: micrel: Disable asymmetric pause for KSZ9021 (diff) | |
parent | libertas: fix crash for SD8688 (diff) | |
download | linux-dev-98b7ff9a4977e4f4f451c30288b197ad79e5ab7f.tar.xz linux-dev-98b7ff9a4977e4f4f451c30288b197ad79e5ab7f.zip |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem
Diffstat (limited to 'net/mac80211/cfg.c')
-rw-r--r-- | net/mac80211/cfg.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c index 09d96a8f6c2c..808f5fcd1ced 100644 --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c @@ -3285,13 +3285,19 @@ static int ieee80211_cfg_get_channel(struct wiphy *wiphy, struct cfg80211_chan_def *chandef) { struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev); + struct ieee80211_local *local = wiphy_priv(wiphy); struct ieee80211_chanctx_conf *chanctx_conf; int ret = -ENODATA; rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); - if (chanctx_conf) { - *chandef = chanctx_conf->def; + if (local->use_chanctx) { + chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + if (chanctx_conf) { + *chandef = chanctx_conf->def; + ret = 0; + } + } else if (local->open_count == local->monitors) { + *chandef = local->monitor_chandef; ret = 0; } rcu_read_unlock(); |