From: Eliad Peller Date: Thu, 20 Oct 2011 17:05:49 +0000 (+0200) Subject: mac80211: fix remain_off_channel regression X-Git-Tag: firefly_0821_release~7541^2~2325 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=632abf8b3f714da01daec2d43ffd9cd7b47f53a9;p=firefly-linux-kernel-4.4.55.git mac80211: fix remain_off_channel regression commit eaa7af2ae582c9a8c51b374c48d5970b748a5ce2 upstream. 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 Signed-off-by: John W. Linville Signed-off-by: Greg Kroah-Hartman --- diff --git a/net/mac80211/work.c b/net/mac80211/work.c index dc8ec05a8fc5..0199f979aa45 100644 --- a/net/mac80211/work.c +++ b/net/mac80211/work.c @@ -1060,8 +1060,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; }