[Cbe-oss-dev] [PATCH] spidernet: enable poll() before registering interrupts

Linas Vepstas linas at austin.ibm.com
Tue Aug 21 08:29:45 EST 2007


On Thu, Jul 12, 2007 at 01:19:11AM +0200, Arnd Bergmann wrote:
> We must not call netif_poll_enable after enabling interrupts,
> because an interrupt might come in and set the __LINK_STATE_RX_SCHED
> bit before we get to clear that bit again. If that happens,
> the next call to the ->poll() function will oops.
> 
> Signed-off-by: Arnd Bergmann <arnd.bergmann at de.ibm.com>
> ---
> This was found during testing with the fedora kernel,
> with all patches from netdev-2.6.git applied.
> 
> It may not be the right fix, but this is currently the
> only way I can get that kernel to boot.
> 
> One part I don't understand at the moment is that Christian
> Krafft reported the same problem with tg3, but that driver
> has all interrupts disabled at the device while calling
> the request_irq() function, which seems to be the best
> solution for avoiding the bug in the first place.

It apears that this patch does not apply cleanly any more,
and I think that's a good thing! 

An intervening patch changed the init so that the 
hardware interrupts aren't enabled until after the
request_irq, and after the poll_enable().  Thus,
it seems this pach is no longer needed, right?

I'll pursue with Kou Ishizaki, who pointed out that
I'd missed your email.

--linas




More information about the cbe-oss-dev mailing list