diff options
| author | Arik Nemtsov <arik@wizery.com> | 2016-08-29 12:37:35 +0300 | 
|---|---|---|
| committer | Johannes Berg <johannes.berg@intel.com> | 2016-08-30 08:03:41 +0200 | 
| commit | 554d072e7bc3e56de5893c8181110a547b2062c9 (patch) | |
| tree | 5c71c6fb6286dd002501b9180e72be8364e80eb2 /net/mac80211/tdls.c | |
| parent | 4d0bd46a4d55383f7b925e6cf7865a77e0f0e020 (diff) | |
| download | linux-554d072e7bc3e56de5893c8181110a547b2062c9.tar.bz2 | |
mac80211: TDLS: don't require beaconing for AP BW
Stop downgrading TDLS chandef when reaching the AP BW. The AP provides
the necessary regulatory protection in this case.
This fixes https://bugzilla.kernel.org/show_bug.cgi?id=153961, which
reported an infinite loop here.
Reported-by: Kamil Toman <kamil.toman@gmail.com>
Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/tdls.c')
| -rw-r--r-- | net/mac80211/tdls.c | 7 | 
1 files changed, 4 insertions, 3 deletions
| diff --git a/net/mac80211/tdls.c b/net/mac80211/tdls.c index b5d28f14b9cf..afca7d103684 100644 --- a/net/mac80211/tdls.c +++ b/net/mac80211/tdls.c @@ -333,10 +333,11 @@ ieee80211_tdls_chandef_vht_upgrade(struct ieee80211_sub_if_data *sdata,  	if (!uc.center_freq1)  		return; -	/* proceed to downgrade the chandef until usable or the same */ +	/* proceed to downgrade the chandef until usable or the same as AP BW */  	while (uc.width > max_width || -	       !cfg80211_reg_can_beacon_relax(sdata->local->hw.wiphy, &uc, -					      sdata->wdev.iftype)) +	       (uc.width > sta->tdls_chandef.width && +		!cfg80211_reg_can_beacon_relax(sdata->local->hw.wiphy, &uc, +					       sdata->wdev.iftype)))  		ieee80211_chandef_downgrade(&uc);  	if (!cfg80211_chandef_identical(&uc, &sta->tdls_chandef)) { |