|
@@ -335,8 +335,17 @@ out:
|
|
|
if (ret & IEEE80211_STA_DISABLE_VHT)
|
|
|
vht_chandef = *chandef;
|
|
|
|
|
|
+ /*
|
|
|
+ * Ignore the DISABLED flag when we're already connected and only
|
|
|
+ * tracking the APs beacon for bandwidth changes - otherwise we
|
|
|
+ * might get disconnected here if we connect to an AP, update our
|
|
|
+ * regulatory information based on the AP's country IE and the
|
|
|
+ * information we have is wrong/outdated and disables the channel
|
|
|
+ * that we're actually using for the connection to the AP.
|
|
|
+ */
|
|
|
while (!cfg80211_chandef_usable(sdata->local->hw.wiphy, chandef,
|
|
|
- IEEE80211_CHAN_DISABLED)) {
|
|
|
+ tracking ? 0 :
|
|
|
+ IEEE80211_CHAN_DISABLED)) {
|
|
|
if (WARN_ON(chandef->width == NL80211_CHAN_WIDTH_20_NOHT)) {
|
|
|
ret = IEEE80211_STA_DISABLE_HT |
|
|
|
IEEE80211_STA_DISABLE_VHT;
|