aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-02-07 20:54:51 +0100
committerJohannes Berg <johannes.berg@intel.com>2013-02-07 20:56:01 +0100
commitd601cd8d950c85032cefdcda162b8cd2cda363bb (patch)
tree82b15f2a30749369f7f08c5ec87261567ea30b35
parent9887dbf5b2163bcf69cd4456c21352e9a81c6003 (diff)
downloadkernel_goldelico_gta04-d601cd8d950c85032cefdcda162b8cd2cda363bb.zip
kernel_goldelico_gta04-d601cd8d950c85032cefdcda162b8cd2cda363bb.tar.gz
kernel_goldelico_gta04-d601cd8d950c85032cefdcda162b8cd2cda363bb.tar.bz2
mac80211: fix managed mode channel context use
My commit f2d9d270c15ae0139b54a7e7466d738327e97e03 ("mac80211: support VHT association") introduced a very stupid bug: the loop to downgrade the channel width never attempted to actually use it again so it would downgrade all the way to 20_NOHT. Fix it. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r--net/mac80211/mlme.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index a355292..3b9cb51 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -3529,8 +3529,11 @@ static int ieee80211_prep_channel(struct ieee80211_sub_if_data *sdata,
*/
ret = ieee80211_vif_use_channel(sdata, &chandef,
IEEE80211_CHANCTX_SHARED);
- while (ret && chandef.width != NL80211_CHAN_WIDTH_20_NOHT)
+ while (ret && chandef.width != NL80211_CHAN_WIDTH_20_NOHT) {
ifmgd->flags |= chandef_downgrade(&chandef);
+ ret = ieee80211_vif_use_channel(sdata, &chandef,
+ IEEE80211_CHANCTX_SHARED);
+ }
return ret;
}