aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/mlme.c
diff options
context:
space:
mode:
authorChris Wright <chrisw@sous-sol.org>2013-07-31 15:12:24 -0400
committerJohannes Berg <johannes.berg@intel.com>2013-07-31 15:15:36 -0400
commitb56e4b857c5210e848bfb80e074e5756a36cd523 (patch)
tree1ded456a420f842dbe49e09e91d194d7969f437e /net/mac80211/mlme.c
parentc319d50bfcf678c2857038276d9fab3c6646f3bf (diff)
mac80211: fix infinite loop in ieee80211_determine_chantype
Commit "3d9646d mac80211: fix channel selection bug" introduced a possible infinite loop by moving the out target above the chandef_downgrade while loop. When we downgrade to NL80211_CHAN_WIDTH_20_NOHT, we jump back up to re-run the while loop...indefinitely. Replace goto with break and carry on. This may not be sufficient to connect to the AP, but will at least keep the cpu from livelocking. Thanks to Derek Atkins as an extra pair of debugging eyes. Cc: stable@kernel.org Signed-off-by: Chris Wright <chrisw@sous-sol.org> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/mlme.c')
-rw-r--r--net/mac80211/mlme.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index ae31968d42d3..e3e7d2be9e41 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -338,7 +338,7 @@ out:
338 if (WARN_ON(chandef->width == NL80211_CHAN_WIDTH_20_NOHT)) { 338 if (WARN_ON(chandef->width == NL80211_CHAN_WIDTH_20_NOHT)) {
339 ret = IEEE80211_STA_DISABLE_HT | 339 ret = IEEE80211_STA_DISABLE_HT |
340 IEEE80211_STA_DISABLE_VHT; 340 IEEE80211_STA_DISABLE_VHT;
341 goto out; 341 break;
342 } 342 }
343 343
344 ret |= chandef_downgrade(chandef); 344 ret |= chandef_downgrade(chandef);