Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> writes: > On Thu, Jun 23, 2016 at 9:13 AM, Quinn Tran <quinn.tran@xxxxxxxxxx> wrote: >> >> >> QT: setting up the interrupt vector does not mean the interrupt starts firing immediately. > > Actually, it very much can mean that. If the interrupt can possibly be > shared, there is a very real possibility of it fiding immediately. > > Now, with MSI(-X) I guess that isn't a worry, so I suspect your patch > that handles just the legacy INTx case anyway is sufficient, but in > general I would like people to always act as if interrupts can happen > immediately after request_irq(). > > We have had *tons* of situations where the firmware left a device > active, for example. Or where some random interrupt controller ended > up having stale interrupts pending, even. > > So in general, it's just good practice to say "spurious interrupts can > and do happen" - the shared irq case is the most obvious case, but > there have been other sources of unexpected spurious interrupts > firing. One case that occassionally bytes even for MSI-X is the case of kexec on panic where the hardware was not shut down before the kernel starts, and the start of the kernel masks the irq. Then when the driver initializes and calls request_irq it is possible for an irq to be pending as soon as the MSI-X irq is actually enabled to the hardware. And there is always CONFIG_IRQ_DEBUG which always acts like an interrupt happens right when after request_irq finishes. Eric -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html