Chromium Code Reviews| Index: chromeos/compat-wireless/net/mac80211/main.c |
| diff --git a/chromeos/compat-wireless/net/mac80211/main.c b/chromeos/compat-wireless/net/mac80211/main.c |
| index cd669529b34c079bedf472841185177329b88d6e..bf0938f7e71b8e533231a8f84b3f359c80d17413 100644 |
| --- a/chromeos/compat-wireless/net/mac80211/main.c |
| +++ b/chromeos/compat-wireless/net/mac80211/main.c |
| @@ -112,7 +112,8 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed) |
| chan = scan_chan; |
| channel_type = NL80211_CHAN_NO_HT; |
| local->hw.conf.flags |= IEEE80211_CONF_OFFCHANNEL; |
| - } else if (local->tmp_channel) { |
| + } else if (local->tmp_channel && |
| + local->oper_channel != local->tmp_channel) { |
|
Sam Leffler
2010/12/01 00:23:44
<come back to this>
|
| chan = scan_chan = local->tmp_channel; |
| channel_type = local->tmp_channel_type; |
| local->hw.conf.flags |= IEEE80211_CONF_OFFCHANNEL; |
| @@ -738,6 +739,12 @@ void ieee80211_unregister_hw(struct ieee80211_hw *hw) |
| rtnl_unlock(); |
| + /* |
| + * Now all work items will be gone, but the |
| + * timer might still be armed, so delete it |
| + */ |
| + del_timer_sync(&local->work_timer); |
| + |
| cancel_work_sync(&local->reconfig_filter); |
| ieee80211_clear_tx_pending(local); |