On Thu, Jun 12, 2003 at 01:16:51PM -0700, Ranjan Parthasarathy wrote: > Is it safe to call do_IRQ directly inside interrupt handlers without doing a irq_enter. I have seen ksoftirqd_CPUX crashes when I call the do_IRQ routines directly instead of the following sequence. > > irq_enter() > do_IRQ > irq_exit() > This is not right. irq_enter()/irq_exit() is already called in handle_IRQ_event(), which in turn is called by do_IRQ(). YOu don't need this yourself. The rest of do_IRQ() code is protected by closing interrupts. Something must be wrong in your system. If you show the crash message, we might be able to tell more. > Some code use it while some do not. The timer code in arch/mips/kernel/time.c uses it in ll_timer_interrupt. Some ports call this function directly in their interrupt handlers. Those ll_timer_xxx functions are alternative routes (fast ones) to do_IRQ(), and therefore it needs to protect itself by calling irq_enter()/irq_exit(). Jun