Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[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>
  • Loading branch information
mcb30 committed Mar 21, 2018
1 parent 1df3b53 commit 0600ffe
Showing 1 changed file with 2 additions and 4 deletions.
6 changes: 2 additions & 4 deletions src/arch/x86/drivers/net/undinet.c
Expand Up @@ -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 );
Expand Down Expand Up @@ -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 */
Expand Down

0 comments on commit 0600ffe

Please sign in to comment.