aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/main.c')
-rw-r--r--net/mac80211/main.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index 866f269183c..3d90dadb5d5 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -742,6 +742,12 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
742 if (!local->int_scan_req) 742 if (!local->int_scan_req)
743 return -ENOMEM; 743 return -ENOMEM;
744 744
745 for (band = 0; band < IEEE80211_NUM_BANDS; band++) {
746 if (!local->hw.wiphy->bands[band])
747 continue;
748 local->int_scan_req->rates[band] = (u32) -1;
749 }
750
745 /* if low-level driver supports AP, we also support VLAN */ 751 /* if low-level driver supports AP, we also support VLAN */
746 if (local->hw.wiphy->interface_modes & BIT(NL80211_IFTYPE_AP)) { 752 if (local->hw.wiphy->interface_modes & BIT(NL80211_IFTYPE_AP)) {
747 hw->wiphy->interface_modes |= BIT(NL80211_IFTYPE_AP_VLAN); 753 hw->wiphy->interface_modes |= BIT(NL80211_IFTYPE_AP_VLAN);
@@ -1012,7 +1018,6 @@ void ieee80211_unregister_hw(struct ieee80211_hw *hw)
1012 cancel_work_sync(&local->reconfig_filter); 1018 cancel_work_sync(&local->reconfig_filter);
1013 1019
1014 ieee80211_clear_tx_pending(local); 1020 ieee80211_clear_tx_pending(local);
1015 sta_info_stop(local);
1016 rate_control_deinitialize(local); 1021 rate_control_deinitialize(local);
1017 1022
1018 if (skb_queue_len(&local->skb_queue) || 1023 if (skb_queue_len(&local->skb_queue) ||
@@ -1024,6 +1029,7 @@ void ieee80211_unregister_hw(struct ieee80211_hw *hw)
1024 1029
1025 destroy_workqueue(local->workqueue); 1030 destroy_workqueue(local->workqueue);
1026 wiphy_unregister(local->hw.wiphy); 1031 wiphy_unregister(local->hw.wiphy);
1032 sta_info_stop(local);
1027 ieee80211_wep_free(local); 1033 ieee80211_wep_free(local);
1028 ieee80211_led_exit(local); 1034 ieee80211_led_exit(local);
1029 kfree(local->int_scan_req); 1035 kfree(local->int_scan_req);