Subject: ack() and end() in hw_irq_controller

From: Jun Sun <[email-masked]>
Date: Tue, 03 Apr 2001 19:07:00 -0700

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