Thread (14 messages) 14 messages, 8 authors, 2005-05-28

Re: [PATCH] Tulip interrupt uses non IRQ safe spinlock

From: Herbert Xu <herbert@gondor.apana.org.au>
Date: 2005-05-02 21:31:08

On Mon, May 02, 2005 at 01:57:28PM +0100, Mark Broadbent wrote:
quoted
However, I don't see how this can happen.  __do_IRQ ensures
that the handlers on a single IRQ aren't reentered by desc->lock
and desc->status.  Softirqs are also kept out by irq_enter.  Am
I missing something?
As far as I can see desc->lock is dropped before handle_IRQ_event() is
called in __do_IRQ() (kernel/irq/handle.c:170) and desc->status does not
prevent the execution of the IRQ handler.  Same with softirqs,
desc->status is set to IRQ_INPROGRESS (kernel/irq/handle.c:144) which
prevents the same IRQ handlers from being invoked again
(kernel/irq/handle.c:141).
interrupts are enabled when the handler is called (kernel/softirq.c:89).
Soft IRQs do not run when we're in an IRQ handler (kernel/softirq.c:121).

Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} [off-list ref]
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help