diff options
Diffstat (limited to 'net/mac80211/main.c')
-rw-r--r-- | net/mac80211/main.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c index b80bc80e46cf..76df5eabf268 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c | |||
@@ -154,15 +154,17 @@ static void ieee80211_master_set_multicast_list(struct net_device *dev) | |||
154 | 154 | ||
155 | int ieee80211_hw_config(struct ieee80211_local *local, u32 changed) | 155 | int ieee80211_hw_config(struct ieee80211_local *local, u32 changed) |
156 | { | 156 | { |
157 | struct ieee80211_channel *chan; | 157 | struct ieee80211_channel *chan, *scan_chan; |
158 | int ret = 0; | 158 | int ret = 0; |
159 | int power; | 159 | int power; |
160 | enum nl80211_channel_type channel_type; | 160 | enum nl80211_channel_type channel_type; |
161 | 161 | ||
162 | might_sleep(); | 162 | might_sleep(); |
163 | 163 | ||
164 | if (local->sw_scanning) { | 164 | scan_chan = local->scan_channel; |
165 | chan = local->scan_channel; | 165 | |
166 | if (scan_chan) { | ||
167 | chan = scan_chan; | ||
166 | channel_type = NL80211_CHAN_NO_HT; | 168 | channel_type = NL80211_CHAN_NO_HT; |
167 | } else { | 169 | } else { |
168 | chan = local->oper_channel; | 170 | chan = local->oper_channel; |
@@ -176,7 +178,7 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed) | |||
176 | changed |= IEEE80211_CONF_CHANGE_CHANNEL; | 178 | changed |= IEEE80211_CONF_CHANGE_CHANNEL; |
177 | } | 179 | } |
178 | 180 | ||
179 | if (local->sw_scanning) | 181 | if (scan_chan) |
180 | power = chan->max_power; | 182 | power = chan->max_power; |
181 | else | 183 | else |
182 | power = local->power_constr_level ? | 184 | power = local->power_constr_level ? |
@@ -859,8 +861,8 @@ int ieee80211_register_hw(struct ieee80211_hw *hw) | |||
859 | if (!local->oper_channel) { | 861 | if (!local->oper_channel) { |
860 | /* init channel we're on */ | 862 | /* init channel we're on */ |
861 | local->hw.conf.channel = | 863 | local->hw.conf.channel = |
862 | local->oper_channel = | 864 | local->oper_channel = &sband->channels[0]; |
863 | local->scan_channel = &sband->channels[0]; | 865 | local->hw.conf.channel_type = NL80211_CHAN_NO_HT; |
864 | } | 866 | } |
865 | channels += sband->n_channels; | 867 | channels += sband->n_channels; |
866 | 868 | ||