diff options
author | Paul Mundt <lethal@linux-sh.org> | 2011-01-26 09:23:27 (GMT) |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2011-01-26 09:23:27 (GMT) |
commit | 6b620478e58677bb3f4ec884abb29ef9d68c7821 (patch) | |
tree | 7a438fc5412587f9bd9b907d4d423ea52a498006 /net/mac80211/main.c | |
parent | 906b17dc089f7fa87e37a9cfe6ee185efc90e0da (diff) | |
parent | 6fb1b304255efc5c4c93874ac8c066272e257e28 (diff) | |
download | linux-fsl-qoriq-6b620478e58677bb3f4ec884abb29ef9d68c7821.tar.xz |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into common/serial-rework
Diffstat (limited to 'net/mac80211/main.c')
-rw-r--r-- | net/mac80211/main.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/net/mac80211/main.c b/net/mac80211/main.c index 485d36b..a46ff06 100644 --- a/net/mac80211/main.c +++ b/net/mac80211/main.c @@ -39,6 +39,8 @@ module_param(ieee80211_disable_40mhz_24ghz, bool, 0644); MODULE_PARM_DESC(ieee80211_disable_40mhz_24ghz, "Disable 40MHz support in the 2.4GHz band"); +static struct lock_class_key ieee80211_rx_skb_queue_class; + void ieee80211_configure_filter(struct ieee80211_local *local) { u64 mc; @@ -569,7 +571,15 @@ struct ieee80211_hw *ieee80211_alloc_hw(size_t priv_data_len, spin_lock_init(&local->filter_lock); spin_lock_init(&local->queue_stop_reason_lock); - skb_queue_head_init(&local->rx_skb_queue); + /* + * The rx_skb_queue is only accessed from tasklets, + * but other SKB queues are used from within IRQ + * context. Therefore, this one needs a different + * locking class so our direct, non-irq-safe use of + * the queue's lock doesn't throw lockdep warnings. + */ + skb_queue_head_init_class(&local->rx_skb_queue, + &ieee80211_rx_skb_queue_class); INIT_DELAYED_WORK(&local->scan_work, ieee80211_scan_work); |