I am trying to adopt the new irq.c under arch/i386/kernel to a MIPS board and hopefully to MIPS common code in general. This is in the anticipation that the irq.c file will be moved to common kernel directory in 2.5. While the rest look pretty self-explanatory, I do have a couple of questions about ack() and end(). 1. It seems to me that in ack() we need to clear any latched, edge triggerred interrupt AND disable the irq. True? 2. Similarly end() should re-enable the irq. 3. I don't quite understand the comment about end(). Any explanation? Does that imply we should check if it is disable before we re-enable the irq? However, it seems such complication can only happen on a SMP, right? /* * The ->end() handler has to deal with interrupts which got * disabled while the handler was running. */ Thanks in advance. Jun