Hello, In DDE Linux26, the interrupt is ignored when an interrupt line is disabled, i.e., the handle_irq field of ddekit_irq_ctrl is 0.
In ne2k-pci, an example in DDE Linux26, when a packet is transmitted by the driver, disable_irq_nosync_lockdep_irqsave() is called to disable irq. Then it triggers a send and calls enable_irq_lockdep_irqrestore(). Now the problem is that after a packet is transmitted, the transmission-done interrupt can be delivered before enable_irq_lockdep_irqrestore is called, so the interrupt is ignored and the driver thinks the packet cannot be transmitted. This situation happens when I run ne2k-pci in the Hurd porting of DDE Linux26. disable_irq_nosync_lockdep_irqsave is exactly the same as disable_irq_nosync when there isn't CONFIG_LOCKDEP. It seems to me that ne2k-pci shouldn't call it in the first place when transmitting packets, but Linux drivers should be correct. Then what goes wrong? Should the interrupt handler delays interrupts instead of ignoring them silently when the interrupt line is disabled? Best regards, Zheng Da