aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/main.c
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2011-01-28 16:23:14 -0500
committerJohn W. Linville <linville@tuxdriver.com>2011-01-28 16:23:14 -0500
commit3e11210d46a4f252f41db6e442b46026aeddbb59 (patch)
treeb258375de649a5e04e8d567c850b47c41f8ceb11 /net/mac80211/main.c
parent3bf63e59e577cbecd41334c866f501c4cc5d54c5 (diff)
parentc7c1806098752c1f46943d8db2c69aff07f5d4bc (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
Conflicts: drivers/net/wireless/ath/ath9k/init.c
Diffstat (limited to 'net/mac80211/main.c')
-rw-r--r--net/mac80211/main.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index 1c507c6972e6..09a27449f3fd 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -39,6 +39,8 @@ module_param(ieee80211_disable_40mhz_24ghz, bool, 0644);
39MODULE_PARM_DESC(ieee80211_disable_40mhz_24ghz, 39MODULE_PARM_DESC(ieee80211_disable_40mhz_24ghz,
40 "Disable 40MHz support in the 2.4GHz band"); 40 "Disable 40MHz support in the 2.4GHz band");
41 41
42static struct lock_class_key ieee80211_rx_skb_queue_class;
43
42void ieee80211_configure_filter(struct ieee80211_local *local) 44void ieee80211_configure_filter(struct ieee80211_local *local)
43{ 45{
44 u64 mc; 46 u64 mc;
@@ -570,7 +572,15 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len,
570 spin_lock_init(&local->filter_lock); 572 spin_lock_init(&local->filter_lock);
571 spin_lock_init(&local->queue_stop_reason_lock); 573 spin_lock_init(&local->queue_stop_reason_lock);
572 574
573 skb_queue_head_init(&local->rx_skb_queue); 575 /*
576 * The rx_skb_queue is only accessed from tasklets,
577 * but other SKB queues are used from within IRQ
578 * context. Therefore, this one needs a different
579 * locking class so our direct, non-irq-safe use of
580 * the queue's lock doesn't throw lockdep warnings.
581 */
582 skb_queue_head_init_class(&local->rx_skb_queue,
583 &ieee80211_rx_skb_queue_class);
574 584
575 INIT_DELAYED_WORK(&local->scan_work, ieee80211_scan_work); 585 INIT_DELAYED_WORK(&local->scan_work, ieee80211_scan_work);
576 586