From: Felix Fietkau <nbd@openwrt.org>
Date: Tue, 26 Jul 2011 15:11:27 +0000 (+0000)
Subject: mac80211: merge a few pending fixes for channel switch handling
X-Git-Tag: reboot~16168
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=d0cea742bba78d9c0a86052e895f0a77023126c7;p=openwrt%2Fstaging%2Fxback.git

mac80211: merge a few pending fixes for channel switch handling

SVN-Revision: 27783
---

diff --git a/package/mac80211/patches/300-pending_work.patch b/package/mac80211/patches/300-pending_work.patch
index 7e3160a1db..f2e4fdb445 100644
--- a/package/mac80211/patches/300-pending_work.patch
+++ b/package/mac80211/patches/300-pending_work.patch
@@ -1116,3 +1116,31 @@
  	{0x000081ec, 0x00000000},
  	{0x000081f0, 0x00000000},
  	{0x000081f4, 0x00000000},
+--- a/net/mac80211/work.c
++++ b/net/mac80211/work.c
+@@ -1075,14 +1075,13 @@ static void ieee80211_work_work(struct w
+ 			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;
+ 	}
+ 
+ 	if (!remain_off_channel && local->tmp_channel) {
+-		bool on_oper_chan = ieee80211_cfg_on_oper_channel(local);
+ 		local->tmp_channel = NULL;
+ 		/* If tmp_channel wasn't operating channel, then
+ 		 * we need to go back on-channel.
+@@ -1092,7 +1091,7 @@ static void ieee80211_work_work(struct w
+ 		 * we still need to do a hardware config.  Currently,
+ 		 * we cannot be here while scanning, however.
+ 		 */
+-		if (ieee80211_cfg_on_oper_channel(local) && !on_oper_chan)
++		if (!ieee80211_cfg_on_oper_channel(local))
+ 			ieee80211_hw_config(local, 0);
+ 
+ 		/* At the least, we need to disable offchannel_ps,