Question regarding Interrupt "delivery" to user mode process
Eugene Surovegin
ebs at ebshome.net
Sat Mar 26 05:31:26 EST 2005
On Fri, Mar 25, 2005 at 11:40:16AM -0600, Tolunay Orkun wrote:
[snip]
> There is a quirk for PPC405 however: Linux (2.4) calls ack_irq() before
> branching to the IRQ handler. However, if irq is level triggered and
> external interrupt source has not yet deasserted, the interrupt status
> bit in interrupt status register will remain set! To avoid spurious
> interrupt it is necessary to call ack_irq() again before enabling the
> interrupts again. I had discussed this in the old linuxppc-embedded list
> while I was doing this driver.
This isn't 405 specific. This problem will exist on any system with
level-sensitive IRQ source which wasn't ACK'ed. ACK'ed here means
acknowledgment in device itself, not in PIC.
This is why this user-space IRQ handling is a bad idea, IMHO. You have
to ACK IRQ (in device itself) in kernel-IRQ handler.
--
Eugene
More information about the Linuxppc-embedded
mailing list