diff options
author | Eliad Peller <eliad@wizery.com> | 2011-10-20 13:05:49 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-11-02 15:23:11 -0400 |
commit | eaa7af2ae582c9a8c51b374c48d5970b748a5ce2 (patch) | |
tree | a536b7cd80d696d21074705ccddf2017eb7203b1 /net | |
parent | 91ae4d02913808fc4056168766185d1a3bd63f65 (diff) |
mac80211: fix remain_off_channel regression
The offchannel code is currently broken - we should
remain_off_channel if the work was started, and
the work's channel and channel_type are the same
as local->tmp_channel and local->tmp_channel_type.
However, if wk->chan_type and local->tmp_channel_type
coexist (e.g. have the same channel type), we won't
remain_off_channel.
This behavior was introduced by commit da2fd1f
("mac80211: Allow work items to use existing
channel type.")
Tested-by: Ben Greear <greearb@candelatech.com>
Signed-off-by: Eliad Peller <eliad@wizery.com>
Cc: stable@kernel.org # 2.6.39+
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/mac80211/work.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/mac80211/work.c b/net/mac80211/work.c index 94472eb34d76..bf5be22a977c 100644 --- a/net/mac80211/work.c +++ b/net/mac80211/work.c | |||
@@ -1084,8 +1084,8 @@ static void ieee80211_work_work(struct work_struct *work) | |||
1084 | continue; | 1084 | continue; |
1085 | if (wk->chan != local->tmp_channel) | 1085 | if (wk->chan != local->tmp_channel) |
1086 | continue; | 1086 | continue; |
1087 | if (ieee80211_work_ct_coexists(wk->chan_type, | 1087 | if (!ieee80211_work_ct_coexists(wk->chan_type, |
1088 | local->tmp_channel_type)) | 1088 | local->tmp_channel_type)) |
1089 | continue; | 1089 | continue; |
1090 | remain_off_channel = true; | 1090 | remain_off_channel = true; |
1091 | } | 1091 | } |