From: Eliad Peller Date: Thu, 20 Oct 2011 17:05:49 +0000 (+0200) Subject: mac80211: fix remain_off_channel regression X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=eaa7af2ae582c9a8c51b374c48d5970b748a5ce2;p=~shefty%2Frdma-dev.git 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 Signed-off-by: Eliad Peller Cc: stable@kernel.org # 2.6.39+ Signed-off-by: John W. Linville --- diff --git a/net/mac80211/work.c b/net/mac80211/work.c index 94472eb34d7..bf5be22a977 100644 --- a/net/mac80211/work.c +++ b/net/mac80211/work.c @@ -1084,8 +1084,8 @@ static void ieee80211_work_work(struct work_struct *work) continue; if (wk->chan != local->tmp_channel) continue; - if (ieee80211_work_ct_coexists(wk->chan_type, - local->tmp_channel_type)) + if (!ieee80211_work_ct_coexists(wk->chan_type, + local->tmp_channel_type)) continue; remain_off_channel = true; }