[Cbe-oss-dev] [PATCH] spidernet: fix interrupt reason recognition

Ishizaki Kou kou.ishizaki at toshiba.co.jp
Wed Aug 22 10:26:24 EST 2007


Linas Vepstas wrote:
> On Mon, Aug 20, 2007 at 10:13:27PM +0900, Ishizaki Kou wrote:
> > Please apply this to 2.6.23.
> 
> I'll review and forward shortly.  Kick me if you don't see a formal
> reply in a few days.
> 
> > And also, please apply the following Arnd-san's patch to fix a problem
> > that spidernet driver sometimes causes a BUG_ON at open.
> > 
> >  http://patchwork.ozlabs.org/cbe-oss-dev/patch?id=12211
> 
> Are you sure? This patch no longer applies cleanly, in part because

I see. I'll send another applicable patch.

> your patch "[PATCH] spidernet: improve interrupt handling" 
> from Mon, 09 Jul 2007 added a spider_net_enable_interrupts(card); 
> at the end of spider_net_open().  Because of this, it seems like 
> Arnd's patch is no longer needed, right?

As you pointed out, we intended that "[PATCH] spidernet: improve
interrupt handling" solves the same problem which Arnd's patch solves.

When spider_net_open() is called, interrupt reasons sometimes remain
on interrupt status register, even though they are masked by mask
register.  With this patch, spider_net_interrupt() compares the value
of interrupt status register with SPIDER_NET_INTX_MASK_VALUE, not with
interrupt mask register value.  As a result, spider_net_interrupt()
(which is called from request_irq() in spider_net_open()) starts
polling and causes BUG_ON().

So, netif_poll_enable() must be called before request_irq() is
called. This is the reason that we also need Arnd's patch.

Best regards,
Kou Ishizaki



More information about the cbe-oss-dev mailing list