diff options
Diffstat (limited to 'net/mac80211/main.c')
-rw-r--r-- | net/mac80211/main.c | 14 |
1 files changed, 1 insertions, 13 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c index 2bdd454e8bcf..2220331f4b7c 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c | |||
@@ -34,8 +34,6 @@ | |||
34 | #include "cfg.h" | 34 | #include "cfg.h" |
35 | #include "debugfs.h" | 35 | #include "debugfs.h" |
36 | 36 | ||
37 | static struct lock_class_key ieee80211_rx_skb_queue_class; | ||
38 | |||
39 | void ieee80211_configure_filter(struct ieee80211_local *local) | 37 | void ieee80211_configure_filter(struct ieee80211_local *local) |
40 | { | 38 | { |
41 | u64 mc; | 39 | u64 mc; |
@@ -613,21 +611,12 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len, | |||
613 | 611 | ||
614 | mutex_init(&local->key_mtx); | 612 | mutex_init(&local->key_mtx); |
615 | spin_lock_init(&local->filter_lock); | 613 | spin_lock_init(&local->filter_lock); |
614 | spin_lock_init(&local->rx_path_lock); | ||
616 | spin_lock_init(&local->queue_stop_reason_lock); | 615 | spin_lock_init(&local->queue_stop_reason_lock); |
617 | 616 | ||
618 | INIT_LIST_HEAD(&local->chanctx_list); | 617 | INIT_LIST_HEAD(&local->chanctx_list); |
619 | mutex_init(&local->chanctx_mtx); | 618 | mutex_init(&local->chanctx_mtx); |
620 | 619 | ||
621 | /* | ||
622 | * The rx_skb_queue is only accessed from tasklets, | ||
623 | * but other SKB queues are used from within IRQ | ||
624 | * context. Therefore, this one needs a different | ||
625 | * locking class so our direct, non-irq-safe use of | ||
626 | * the queue's lock doesn't throw lockdep warnings. | ||
627 | */ | ||
628 | skb_queue_head_init_class(&local->rx_skb_queue, | ||
629 | &ieee80211_rx_skb_queue_class); | ||
630 | |||
631 | INIT_DELAYED_WORK(&local->scan_work, ieee80211_scan_work); | 620 | INIT_DELAYED_WORK(&local->scan_work, ieee80211_scan_work); |
632 | 621 | ||
633 | INIT_WORK(&local->restart_work, ieee80211_restart_work); | 622 | INIT_WORK(&local->restart_work, ieee80211_restart_work); |
@@ -1089,7 +1078,6 @@ void ieee80211_unregister_hw(struct ieee80211_hw *hw) | |||
1089 | wiphy_warn(local->hw.wiphy, "skb_queue not empty\n"); | 1078 | wiphy_warn(local->hw.wiphy, "skb_queue not empty\n"); |
1090 | skb_queue_purge(&local->skb_queue); | 1079 | skb_queue_purge(&local->skb_queue); |
1091 | skb_queue_purge(&local->skb_queue_unreliable); | 1080 | skb_queue_purge(&local->skb_queue_unreliable); |
1092 | skb_queue_purge(&local->rx_skb_queue); | ||
1093 | 1081 | ||
1094 | destroy_workqueue(local->workqueue); | 1082 | destroy_workqueue(local->workqueue); |
1095 | wiphy_unregister(local->hw.wiphy); | 1083 | wiphy_unregister(local->hw.wiphy); |