From 49f60349283854a06882ac5d6dea821a3c2a8cfa Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Thu, 29 Jul 2010 17:36:43 +0200 Subject: [PATCH] --- yaml --- r: 213967 b: refs/heads/master c: ffd2778bb984afe3cc264e22a125c06587020aa3 h: refs/heads/master i: 213965: 435e5c20a426962022cd5c849d46ae62d4a56269 213963: b9d2f88b3deaadbf129222269e90b9888db474d8 213959: 2437d06185606c3d2f0901e487e572ae2b891ce4 213951: 5c12cf696494032c0473b4bf2b243dce8c6d7b50 v: v3 --- [refs] | 2 +- trunk/net/mac80211/main.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 67cb40bf9f3c..e00ae9a11665 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4d7ede7f5ad58c5316335b9018ddef58bd687def +refs/heads/master: ffd2778bb984afe3cc264e22a125c06587020aa3 diff --git a/trunk/net/mac80211/main.c b/trunk/net/mac80211/main.c index 1ed956c9cb8b..18b8df922c60 100644 --- a/trunk/net/mac80211/main.c +++ b/trunk/net/mac80211/main.c @@ -99,11 +99,13 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed) int ret = 0; int power; enum nl80211_channel_type channel_type; + u32 offchannel_flag; might_sleep(); scan_chan = local->scan_channel; + offchannel_flag = local->hw.conf.flags & IEEE80211_CONF_OFFCHANNEL; if (scan_chan) { chan = scan_chan; channel_type = NL80211_CHAN_NO_HT; @@ -117,8 +119,9 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed) channel_type = local->_oper_channel_type; local->hw.conf.flags &= ~IEEE80211_CONF_OFFCHANNEL; } + offchannel_flag ^= local->hw.conf.flags & IEEE80211_CONF_OFFCHANNEL; - if (chan != local->hw.conf.channel || + if (offchannel_flag || chan != local->hw.conf.channel || channel_type != local->hw.conf.channel_type) { local->hw.conf.channel = chan; local->hw.conf.channel_type = channel_type;