Search Linux Wireless

Re: Lockdep splat when unloading b43

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxx>
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@xxxxxxxxxxxx>
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@xxxxxxxxxxxx>
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

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux