Re: 2.6.17-rc5-mm1 - output of lock validator

From: Arjan van de Ven
Date: Thu Jun 01 2006 - 04:11:27 EST


On Thu, 2006-06-01 at 18:09 +1000, Herbert Xu wrote:
> On Wed, May 31, 2006 at 09:24:12PM +0000, Arjan van de Ven wrote:
> >
> > misrouted_irq() in kernel/irq/spurious.c
> > afaics that calls all handlers registered to the system regardless of what
> > irq number they are registered for.....
> >
> > which breaks the disable_irq() locking trick... because your irq handler now
> > gets called anyway!
>
> This is a serious bug in misrouted_irq(). disable_irq() is a software
> state and must be repsected.

no that is not correct.
The api is a mix kinda and broken; it really DOES mean "shut this irq
source off". That your handler won't get called is an assumption!
You do NOT disable your handler this way.
What we really need is a disable_irq_handler() api that does both!

(you may say I'm handwaving, but if disable_irq() would disable a
handler, it for sure would have taken a "handler" argument, which it
doesn't!)


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/