>so it is possible that both card raise intr quicker than isr run, then
>both isr will do mmio and go ahead, but then what is
>
>device 1 raise intr
>device 2 isr run and not belong to it, so quit, but before it clear intr
>and quit
>device 2 raise intr
>device 1 isr run and handle device 1, then clear intr and quit.
>
>then device 2 intr lost?

As these are level sensitive interrupt requests, they can't be lost.  As 
long as Device 2 is requesting service,
the shared IRQ is raised and at some point Linux will call Device 2's 
interrupt handler.  Either the first level IRQ handler will keep calling 
all the interrupt handlers that service that IRQ until the IRQ subsides, 
or it will unmask the IRQ, causing an immediate new interrupt and the 
first level interrupt handler runs again and calls all the device drivers 
again.

The raised IRQ says, "Device 1 or Device 2 needs service."  The device 
drivers clear the service request of the individual device; as long as 
either device requests service, the IRQ is raised.

--
Bryan Henderson                     IBM Almaden Research Center
San Jose CA                         Filesystems

-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to