mirror of https://github.com/ipxe/ipxe.git
If the UNDI interrupt remains constantly asserted (e.g. because the BIOS has enabled interrupts for an unrelated device sharing the same IRQ, or because of bugs in the OEM UNDI driver), then we may get stuck in an interrupt storm. We cannot safely chain to the previous interrupt handler (which could plausibly handle an unrelated device interrupt) since there is no well-defined behaviour for previous interrupt handlers. We have observed BIOSes to provide default interrupt handlers that variously do nothing, send EOI, disable the IRQ, or crash the system. Fix by disabling the UNDI interrupt whenever our handler is triggered, and rearm it as needed when polling the network device. This ensures that forward progress continues to be made even if something causes the interrupt to be constantly asserted. Signed-off-by: Michael Brown <mcb30@ipxe.org> |
||
---|---|---|
.github/workflows | ||
contrib | ||
src | ||
COPYING | ||
COPYING.GPLv2 | ||
COPYING.UBDL | ||
README |
README
iPXE README File Quick start guide: cd src make For any more detailed instructions, see http://ipxe.org