See Documentation/spin-locking.txt line 137, this states that spin_[un]lock() should not be used in IRQ handlers. As far as I can tell this is the case (disclaimer applies) [see my other reply to Her
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 sof
Mark Broadbent wrote: The interrupt handling code in the tulip network driver appears to use a non IRQ safe spinlock in an interrupt context. The following patch should correct this. Huh? Can a netwo
Line 137 in my spin-locking.txt is a blank line :) Please quote the exact text. -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: htt
prevents the same IRQ handlers from being invoked again (kernel/irq/handle.c:141). Soft IRQs do not run when we're in an IRQ handler (kernel/softirq.c:121). Cheers, -- Visit Openswan at http://www.op
Agreed. However, AFAIK the tulip driver doesn't care about other interrupts. Cheers, -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx> Home Page
The watchdog runs in softirq context which is disabled while the IRQ handler is running. -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx> Home
Yes this isn't very clear. What it's trying to say that if you're in a softirq/user context and the spin lock may be taken in an IRQ context elsewhere then you must use the IRQ-disabling version. How
Mark Broadbent wrote: The interrupt handling code in the tulip network driver appears to use a non IRQ safe spinlock in an interrupt context. The following patch should correct this. Signed-off-by: M
See Documentation/spin-locking.txt line 137, this states that spin_[un]lock() should not be used in IRQ handlers. As far as I can tell this is the case (disclaimer applies) [see my other reply to Her
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 sof