From: Larry Finger <Larry.Finger@lwfinger.net>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: John Linville <linville@tuxdriver.com>,
"linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>,
Miles Lane <miles.lane@gmail.com>, Sujith <m.sujith@gmail.com>
Subject: Re: [PATCH] mac80211: fix lockdep warning
Date: Wed, 12 Jan 2011 10:44:59 -0600 [thread overview]
Message-ID: <4D2DDA8B.8010501@lwfinger.net> (raw)
In-Reply-To: <1294836033.3639.24.camel@jlt3.sipsolutions.net>
On 01/12/2011 06:40 AM, Johannes Berg wrote:
> From: Johannes Berg <johannes.berg@intel.com>
>
> Since the introduction of the fixes for the
> reorder timer, mac80211 will cause lockdep
> warnings because lockdep confuses
> local->skb_queue and local->rx_skb_queue
> and treats their lock as the same.
>
> However, their locks are different, and are
> valid in different contexts (the former is
> used in IRQ context, the latter in BH only)
> and the only thing to be done is mark the
> former as a different lock class so that
> lockdep can tell the difference.
>
> Reported-by: Larry Finger <Larry.Finger@lwfinger.net>
> Reported-by: Sujith <m.sujith@gmail.com>
> Reported-by: Miles Lane <miles.lane@gmail.com>
> Tested-by: Sujith <m.sujith@gmail.com>
> Tested-by: Johannes Berg <johannes.berg@intel.com>
> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
> ---
> net/mac80211/main.c | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> --- wireless-testing.orig/net/mac80211/main.c 2011-01-12 09:58:07.000000000 +0100
> +++ wireless-testing/net/mac80211/main.c 2011-01-12 10:02:03.000000000 +0100
> @@ -39,6 +39,8 @@ module_param(ieee80211_disable_40mhz_24g
> 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(
> 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);
>
>
>
This one works for me. Thanks for sorting this out.
Larry
prev parent reply other threads:[~2011-01-12 16:44 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-12 12:40 [PATCH] mac80211: fix lockdep warning Johannes Berg
2011-01-12 16:44 ` Larry Finger [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D2DDA8B.8010501@lwfinger.net \
--to=larry.finger@lwfinger.net \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=m.sujith@gmail.com \
--cc=miles.lane@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.