From mboxrd@z Thu Jan 1 00:00:00 1970 From: Larry Finger Date: Sun, 24 Feb 2013 12:53:11 -0600 Subject: Lockdep splat when unloading b43 In-Reply-To: <20130224193239.3517e6ac@milhouse> References: <512A4E83.5090901@lwfinger.net> <20130224193239.3517e6ac@milhouse> Message-ID: <512A6197.2000908@lwfinger.net> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: =?UTF-8?B?TWljaGFlbCBCw7xzY2g=?= Cc: =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= , linux-wireless , b43-dev , LKML On 02/24/2013 12:32 PM, Michael B?sch wrote: > On Sun, 24 Feb 2013 11:31:47 -0600 > Larry Finger wrote: > >> With the current wireless-testing tree, unloading b43 produces the lockdep log >> splat copied below. My understanding of locking is deficient, and I would like >> to learn. Any help on understanding this problem is appreciated. > > A few questions: > Is there any reason for using the global workqueue and not mac80211's workqueue? My original thought was that we needed the firmware load queue before mac80211 was running for b43; however, I now realize that my thinking was wrong. > Why is the workqueue cancelled in the core_stop callback? Wouldn't it make more > sense to cancel it in bcma_remove/ssb_remove? It certainly would. > This would probably fix the circular dependency. But I'm not entirely sure, because > I'm not that familiar with the code anymore. I know that a lot has changed, but your instincts are still good. Thanks, Larry