* [PATCH 3.11] mac80211: continue using disabled channels while connected
@ 2013-07-31 19:09 Johannes Berg
2013-07-31 19:10 ` Johannes Berg
2013-07-31 19:17 ` Johannes Berg
0 siblings, 2 replies; 3+ messages in thread
From: Johannes Berg @ 2013-07-31 19:09 UTC (permalink / raw)
To: linux-wireless; +Cc: chrisw, Johannes Berg
From: Johannes Berg <johannes.berg@intel.com>
In case the AP has different regulatory information than we do,
it can happen that we connect to an AP based on e.g. the world
roaming regulatory data, and then update our database with the
AP's country information disables the channel the AP is using.
If this happens on an HT AP, the bandwidth tracking code will
hit the WARN_ON() and disconnect. Since that's not very useful,
ignore the channel-disable flag in bandwidth tracking.
Reported-by: Chris Wright <chrisw@sous-sol.org>
Tested-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
---
net/mac80211/mlme.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 77e7796..3df4fb3 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -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;
--
1.8.0
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH 3.11] mac80211: continue using disabled channels while connected
2013-07-31 19:09 [PATCH 3.11] mac80211: continue using disabled channels while connected Johannes Berg
@ 2013-07-31 19:10 ` Johannes Berg
2013-07-31 19:17 ` Johannes Berg
1 sibling, 0 replies; 3+ messages in thread
From: Johannes Berg @ 2013-07-31 19:10 UTC (permalink / raw)
To: linux-wireless; +Cc: chrisw
On Wed, 2013-07-31 at 21:09 +0200, Johannes Berg wrote:
> From: Johannes Berg <johannes.berg@intel.com>
>
> In case the AP has different regulatory information than we do,
> it can happen that we connect to an AP based on e.g. the world
> roaming regulatory data, and then update our database with the
> AP's country information disables the channel the AP is using.
> If this happens on an HT AP, the bandwidth tracking code will
> hit the WARN_ON() and disconnect. Since that's not very useful,
> ignore the channel-disable flag in bandwidth tracking.
>
> Reported-by: Chris Wright <chrisw@sous-sol.org>
> Tested-by: Chris Wright <chrisw@sous-sol.org>
> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Forgot Cc stable, will add.
johannes
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH 3.11] mac80211: continue using disabled channels while connected
2013-07-31 19:09 [PATCH 3.11] mac80211: continue using disabled channels while connected Johannes Berg
2013-07-31 19:10 ` Johannes Berg
@ 2013-07-31 19:17 ` Johannes Berg
1 sibling, 0 replies; 3+ messages in thread
From: Johannes Berg @ 2013-07-31 19:17 UTC (permalink / raw)
To: linux-wireless; +Cc: chrisw
On Wed, 2013-07-31 at 21:09 +0200, Johannes Berg wrote:
> From: Johannes Berg <johannes.berg@intel.com>
>
> In case the AP has different regulatory information than we do,
> it can happen that we connect to an AP based on e.g. the world
> roaming regulatory data, and then update our database with the
> AP's country information disables the channel the AP is using.
> If this happens on an HT AP, the bandwidth tracking code will
> hit the WARN_ON() and disconnect. Since that's not very useful,
> ignore the channel-disable flag in bandwidth tracking.
Applied.
(ok, so this was a short time, but it's kinda an important fix ...)
johannes
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-07-31 19:17 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-31 19:09 [PATCH 3.11] mac80211: continue using disabled channels while connected Johannes Berg
2013-07-31 19:10 ` Johannes Berg
2013-07-31 19:17 ` Johannes Berg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox