mirror of
https://github.com/ipxe/ipxe
synced 2025-12-14 07:50:43 +03:00
[undi] Treat invalid IRQ numbers as non-fatal errors
If the underlying PXE stack reports an invalid IRQ number (above IRQ_MAX), treat this as equivalent to an empty IRQ number and fall back to using polling mode. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -938,10 +938,9 @@ int undinet_probe ( struct undi_device *undi, struct device *dev ) {
|
||||
memcpy ( netdev->ll_addr, undi_info.CurrentNodeAddress, ETH_ALEN );
|
||||
undinic->irq = undi_info.IntNumber;
|
||||
if ( undinic->irq > IRQ_MAX ) {
|
||||
DBGC ( undinic, "UNDINIC %p has invalid IRQ %d\n",
|
||||
DBGC ( undinic, "UNDINIC %p ignoring invalid IRQ %d\n",
|
||||
undinic, undinic->irq );
|
||||
rc = -EINVAL;
|
||||
goto err_bad_irq;
|
||||
undinic->irq = 0;
|
||||
}
|
||||
DBGC ( undinic, "UNDINIC %p has MAC address %s and IRQ %d\n",
|
||||
undinic, eth_ntoa ( netdev->hw_addr ), undinic->irq );
|
||||
@@ -984,7 +983,6 @@ int undinet_probe ( struct undi_device *undi, struct device *dev ) {
|
||||
|
||||
err_register:
|
||||
err_undi_get_iface_info:
|
||||
err_bad_irq:
|
||||
err_undi_get_information:
|
||||
err_undi_initialize:
|
||||
/* Shut down UNDI stack */
|
||||
|
||||
Reference in New Issue
Block a user