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 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}
612EXPORT_SYMBOL(ieee80211_alloc_hw); 616EXPORT_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);