Change Details
package/mac80211/patches/524-mac80211_offchannel_fix.patch |
1 | | +++ b/net/mac80211/main.c |
2 | | @@ -99,11 +99,13 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed) |
3 | | int ret = 0; |
4 | | int power; |
5 | | enum nl80211_channel_type channel_type; |
6 | | + u32 offchannel_flag; |
7 | | |
8 | | might_sleep(); |
9 | | |
10 | | scan_chan = local->scan_channel; |
11 | | |
12 | | + offchannel_flag = local->hw.conf.flags & IEEE80211_CONF_OFFCHANNEL; |
13 | | if (scan_chan) { |
14 | | chan = scan_chan; |
15 | | channel_type = NL80211_CHAN_NO_HT; |
16 | | @@ -117,8 +119,9 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed) |
17 | | channel_type = local->_oper_channel_type; |
18 | | local->hw.conf.flags &= ~IEEE80211_CONF_OFFCHANNEL; |
19 | | } |
20 | | + offchannel_flag ^= local->hw.conf.flags & IEEE80211_CONF_OFFCHANNEL; |
21 | | |
22 | | - if (chan != local->hw.conf.channel || |
23 | | + if (offchannel_flag || chan != local->hw.conf.channel || |
24 | | channel_type != local->hw.conf.channel_type) { |
25 | | local->hw.conf.channel = chan; |
26 | | local->hw.conf.channel_type = channel_type; |
Download the corresponding diff file