[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-arm-kernel
Subject:    Re: race condition in do_IRQ
From:       Nicolas Pitre <nico () cam ! org>
Date:       2004-05-06 14:20:01
Message-ID: Pine.LNX.4.44.0405060959160.6656-100000 () xanadu ! home
[Download RAW message or body]

On Thu, 6 May 2004, Ian Molton wrote:

> On Thu, 6 May 2004 10:03:56 +0200
> Matthias Welwarsky <mwelwarsky@web.de> wrote:
> 
> > This is the interrupt handler. The code you're talking about is run with 
> > interrupts disabled and is protected with the irq_controller spinlock - no 
> > atomicity problem there. The desc->running lock is there because later 
> > interrupts may become enabled again.
> 
> why not put a comment in the code to that effect?

If you follow the code a little further, you'll see this:

        if (!(action->flags & SA_INTERRUPT))
                local_irq_enable();

which implies that IRQs were disabled up to that point.

But to be sure, you could look for the areas where do_IRQ() is caled from.  
There is two such places in entry-armv.S: __irq_svc and __irq_usr, and both 
of them are entered from the IRQ vector which has interrupt disabled.


Nicolas


-------------------------------------------------------------------
Subscription options: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm-kernel
FAQ:       http://www.arm.linux.org.uk/armlinux/mlfaq.php
Etiquette: http://www.arm.linux.org.uk/armlinux/mletiquette.php
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic