[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1169617390.30511.27.camel@dv>
Date: Wed, 24 Jan 2007 00:43:10 -0500
From: Pavel Roskin <proski@....org>
To: Michael Buesch <mb@...sch.de>
Cc: bcm43xx-dev@...ts.berlios.de, netdev@...r.kernel.org
Subject: Re: Can someone please try...
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 majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists