diff options
Diffstat (limited to 'net/mac80211/main.c')
-rw-r--r-- | net/mac80211/main.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c index 0c4f8e122ed6..b03fd84777fa 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c | |||
@@ -765,9 +765,9 @@ int ieee80211_register_hw(struct ieee80211_hw *hw) | |||
765 | supp_ht = supp_ht || sband->ht_cap.ht_supported; | 765 | supp_ht = supp_ht || sband->ht_cap.ht_supported; |
766 | } | 766 | } |
767 | 767 | ||
768 | local->int_scan_req.n_channels = channels; | 768 | local->int_scan_req = kzalloc(sizeof(*local->int_scan_req) + |
769 | local->int_scan_req.channels = kzalloc(sizeof(void *) * channels, GFP_KERNEL); | 769 | sizeof(void *) * channels, GFP_KERNEL); |
770 | if (!local->int_scan_req.channels) | 770 | if (!local->int_scan_req) |
771 | return -ENOMEM; | 771 | return -ENOMEM; |
772 | 772 | ||
773 | /* if low-level driver supports AP, we also support VLAN */ | 773 | /* if low-level driver supports AP, we also support VLAN */ |
@@ -882,13 +882,13 @@ int ieee80211_register_hw(struct ieee80211_hw *hw) | |||
882 | 882 | ||
883 | /* alloc internal scan request */ | 883 | /* alloc internal scan request */ |
884 | i = 0; | 884 | i = 0; |
885 | local->int_scan_req.ssids = &local->scan_ssid; | 885 | local->int_scan_req->ssids = &local->scan_ssid; |
886 | local->int_scan_req.n_ssids = 1; | 886 | local->int_scan_req->n_ssids = 1; |
887 | for (band = 0; band < IEEE80211_NUM_BANDS; band++) { | 887 | for (band = 0; band < IEEE80211_NUM_BANDS; band++) { |
888 | if (!hw->wiphy->bands[band]) | 888 | if (!hw->wiphy->bands[band]) |
889 | continue; | 889 | continue; |
890 | for (j = 0; j < hw->wiphy->bands[band]->n_channels; j++) { | 890 | for (j = 0; j < hw->wiphy->bands[band]->n_channels; j++) { |
891 | local->int_scan_req.channels[i] = | 891 | local->int_scan_req->channels[i] = |
892 | &hw->wiphy->bands[band]->channels[j]; | 892 | &hw->wiphy->bands[band]->channels[j]; |
893 | i++; | 893 | i++; |
894 | } | 894 | } |
@@ -920,7 +920,7 @@ int ieee80211_register_hw(struct ieee80211_hw *hw) | |||
920 | fail_workqueue: | 920 | fail_workqueue: |
921 | wiphy_unregister(local->hw.wiphy); | 921 | wiphy_unregister(local->hw.wiphy); |
922 | fail_wiphy_register: | 922 | fail_wiphy_register: |
923 | kfree(local->int_scan_req.channels); | 923 | kfree(local->int_scan_req->channels); |
924 | return result; | 924 | return result; |
925 | } | 925 | } |
926 | EXPORT_SYMBOL(ieee80211_register_hw); | 926 | EXPORT_SYMBOL(ieee80211_register_hw); |
@@ -962,7 +962,7 @@ void ieee80211_unregister_hw(struct ieee80211_hw *hw) | |||
962 | wiphy_unregister(local->hw.wiphy); | 962 | wiphy_unregister(local->hw.wiphy); |
963 | ieee80211_wep_free(local); | 963 | ieee80211_wep_free(local); |
964 | ieee80211_led_exit(local); | 964 | ieee80211_led_exit(local); |
965 | kfree(local->int_scan_req.channels); | 965 | kfree(local->int_scan_req); |
966 | } | 966 | } |
967 | EXPORT_SYMBOL(ieee80211_unregister_hw); | 967 | EXPORT_SYMBOL(ieee80211_unregister_hw); |
968 | 968 | ||