diff options
Diffstat (limited to 'net/mac80211/main.c')
-rw-r--r-- | net/mac80211/main.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c index bbe8e0ac6e52..485d36bc9a46 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c | |||
@@ -569,6 +569,8 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len, | |||
569 | spin_lock_init(&local->filter_lock); | 569 | spin_lock_init(&local->filter_lock); |
570 | spin_lock_init(&local->queue_stop_reason_lock); | 570 | spin_lock_init(&local->queue_stop_reason_lock); |
571 | 571 | ||
572 | skb_queue_head_init(&local->rx_skb_queue); | ||
573 | |||
572 | INIT_DELAYED_WORK(&local->scan_work, ieee80211_scan_work); | 574 | INIT_DELAYED_WORK(&local->scan_work, ieee80211_scan_work); |
573 | 575 | ||
574 | ieee80211_work_init(local); | 576 | ieee80211_work_init(local); |
@@ -607,6 +609,8 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len, | |||
607 | 609 | ||
608 | ieee80211_led_names(local); | 610 | ieee80211_led_names(local); |
609 | 611 | ||
612 | ieee80211_hw_roc_setup(local); | ||
613 | |||
610 | return local_to_hw(local); | 614 | return local_to_hw(local); |
611 | } | 615 | } |
612 | EXPORT_SYMBOL(ieee80211_alloc_hw); | 616 | EXPORT_SYMBOL(ieee80211_alloc_hw); |
@@ -751,7 +755,8 @@ int ieee80211_register_hw(struct ieee80211_hw *hw) | |||
751 | } | 755 | } |
752 | } | 756 | } |
753 | 757 | ||
754 | local->hw.wiphy->max_remain_on_channel_duration = 5000; | 758 | if (!local->ops->remain_on_channel) |
759 | local->hw.wiphy->max_remain_on_channel_duration = 5000; | ||
755 | 760 | ||
756 | result = wiphy_register(local->hw.wiphy); | 761 | result = wiphy_register(local->hw.wiphy); |
757 | if (result < 0) | 762 | if (result < 0) |
@@ -914,6 +919,7 @@ void ieee80211_unregister_hw(struct ieee80211_hw *hw) | |||
914 | wiphy_warn(local->hw.wiphy, "skb_queue not empty\n"); | 919 | wiphy_warn(local->hw.wiphy, "skb_queue not empty\n"); |
915 | skb_queue_purge(&local->skb_queue); | 920 | skb_queue_purge(&local->skb_queue); |
916 | skb_queue_purge(&local->skb_queue_unreliable); | 921 | skb_queue_purge(&local->skb_queue_unreliable); |
922 | skb_queue_purge(&local->rx_skb_queue); | ||
917 | 923 | ||
918 | destroy_workqueue(local->workqueue); | 924 | destroy_workqueue(local->workqueue); |
919 | wiphy_unregister(local->hw.wiphy); | 925 | wiphy_unregister(local->hw.wiphy); |