All of lore.kernel.org
 help / color / mirror / Atom feed
From: Larry Finger <Larry.Finger@lwfinger.net>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: "Rafał Miłecki" <zajec5@gmail.com>, "Michael Büsch" <m@bues.ch>,
	linux-wireless <linux-wireless@vger.kernel.org>,
	b43-dev <b43-dev@lists.infradead.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Lockdep splat when unloading b43
Date: Sun, 24 Feb 2013 13:38:42 -0600	[thread overview]
Message-ID: <512A6C42.8080508@lwfinger.net> (raw)
In-Reply-To: <1361729697.8129.19.camel@jlt4.sipsolutions.net>

On 02/24/2013 12:14 PM, Johannes Berg wrote:
> On Sun, 2013-02-24 at 11:31 -0600, Larry Finger wrote:

Thanks for the detailed analysis. It was very helpful.

> Here request_firmware calls wiphy_register which locks the RTNL, and
> it's running from the work struct. This was newly introduced by commit
> ecb4433550f0620f3d1471ae7099037ede30a91e
> Author: Stanislaw Gruszka <sgruszka@redhat.com>
> Date:   Fri Aug 12 14:00:59 2011 +0200
>
>      mac80211: fix suspend/resume races with unregister hw

That commit may bear some responsibility, but commit 
6b6fa5868eec26bdc6a83543cebb8cf832a2645a
Author: Larry Finger <Larry.Finger@lwfinger.net>
Date:   Thu Mar 8 22:27:46 2012 -0600

     b43: Load firmware from a work queue and not from the probe routine

is also at fault.

> Anyway, the solution probably is to move the cancel_work_sync into
> something like the ssb deregister.

This fix was also suggested by Michael - it works.

The change to load the firmware from a work queue failed when b43 was built into 
the kernel, which required commit 5e20a4b53094651d80f856ff55a916b999dbb57a
Author: Larry Finger <Larry.Finger@lwfinger.net>
Date:   Thu Dec 20 15:55:01 2012 -0600

     b43: Fix firmware loading when driver is built into the kernel

I probably should do a rewrite of firmware loading, but that is unlikely to 
happen. Fortunately, moving the cancel work call is a small enough change that 
it can be backported to stable.

Thanks,

Larry

WARNING: multiple messages have this Message-ID (diff)
From: Larry Finger <Larry.Finger@lwfinger.net>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: "Rafał Miłecki" <zajec5@gmail.com>, "Michael Büsch" <m@bues.ch>,
	linux-wireless <linux-wireless@vger.kernel.org>,
	b43-dev <b43-dev@lists.infradead.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: Lockdep splat when unloading b43
Date: Sun, 24 Feb 2013 13:38:42 -0600	[thread overview]
Message-ID: <512A6C42.8080508@lwfinger.net> (raw)
In-Reply-To: <1361729697.8129.19.camel@jlt4.sipsolutions.net>

On 02/24/2013 12:14 PM, Johannes Berg wrote:
> On Sun, 2013-02-24 at 11:31 -0600, Larry Finger wrote:

Thanks for the detailed analysis. It was very helpful.

> Here request_firmware calls wiphy_register which locks the RTNL, and
> it's running from the work struct. This was newly introduced by commit
> ecb4433550f0620f3d1471ae7099037ede30a91e
> Author: Stanislaw Gruszka <sgruszka@redhat.com>
> Date:   Fri Aug 12 14:00:59 2011 +0200
>
>      mac80211: fix suspend/resume races with unregister hw

That commit may bear some responsibility, but commit 
6b6fa5868eec26bdc6a83543cebb8cf832a2645a
Author: Larry Finger <Larry.Finger@lwfinger.net>
Date:   Thu Mar 8 22:27:46 2012 -0600

     b43: Load firmware from a work queue and not from the probe routine

is also at fault.

> Anyway, the solution probably is to move the cancel_work_sync into
> something like the ssb deregister.

This fix was also suggested by Michael - it works.

The change to load the firmware from a work queue failed when b43 was built into 
the kernel, which required commit 5e20a4b53094651d80f856ff55a916b999dbb57a
Author: Larry Finger <Larry.Finger@lwfinger.net>
Date:   Thu Dec 20 15:55:01 2012 -0600

     b43: Fix firmware loading when driver is built into the kernel

I probably should do a rewrite of firmware loading, but that is unlikely to 
happen. Fortunately, moving the cancel work call is a small enough change that 
it can be backported to stable.

Thanks,

Larry


  reply	other threads:[~2013-02-24 19:38 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-24 17:31 Lockdep splat when unloading b43 Larry Finger
2013-02-24 18:14 ` Johannes Berg
2013-02-24 18:14   ` Johannes Berg
2013-02-24 19:38   ` Larry Finger [this message]
2013-02-24 19:38     ` Larry Finger
2013-02-24 18:32 ` Michael Büsch
2013-02-24 18:32   ` Michael Büsch
2013-02-24 18:53   ` Larry Finger
2013-02-24 18:53     ` Larry Finger

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=512A6C42.8080508@lwfinger.net \
    --to=larry.finger@lwfinger.net \
    --cc=b43-dev@lists.infradead.org \
    --cc=johannes@sipsolutions.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=m@bues.ch \
    --cc=zajec5@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.