On Tue, 2007-01-23 at 10:21 +0100, Michael Buesch wrote: > On Tuesday 23 January 2007 07:14, Pavel Roskin wrote: > > I have tried the patch, and it doesn't fix the problem. It's a separate > > problem. It happens when bcm43xx_interrupt_handler() is called on a > > device that has already been removed. > > That shouldn't happen and doesn't for me. > > > It looks like > > bcm43xx_wireless_core_stop() should be called from > > bcm43xx_one_core_detach(). > > No, well... . remove_interface should have been called by the stack, no?
It is not. It's called if I bring the interface down with ifconfig. If I remove live interface with "rmmod bcm43xx_d80211", bcm43xx_one_core_detach() is called first, followed by kernel panic in bcm43xx_interrupt_handler(). And that's what I see in the code. Module removal calls bcm43xx_exit(). It unregisters the ssb driver first. The ssb layer calls bcm43xx_remove(), which calls bcm43xx_one_core_detach() before doing anything with the wireless stack or with interrupts. I tried to put bcm43xx_one_core_detach() to the end of bcm43xx_remove(), but the result was the same. Still, I think the solution lies in that direction. We should stop the hardware before dismantling any data structures. -- Regards, Pavel Roskin - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html