diff --git a/src/arch/i386/drivers/net/undinet.c b/src/arch/i386/drivers/net/undinet.c index 56bd6288..5cfceda7 100644 --- a/src/arch/i386/drivers/net/undinet.c +++ b/src/arch/i386/drivers/net/undinet.c @@ -558,8 +558,10 @@ int undinet_probe ( struct undi_device *undi ) { DBGC ( undinic, "UNDINIC %p has type %s, speed %d, flags %08x\n", undinic, undi_iface.IfaceType, undi_iface.LinkSpeed, undi_iface.ServiceFlags ); - if ( undi_iface.ServiceFlags & SUPPORTED_IRQ ) + if ( ( undi_iface.ServiceFlags & SUPPORTED_IRQ ) && + ( undinic->irq != 0 ) ) { undinic->irq_supported = 1; + } DBGC ( undinic, "UNDINIC %p using %s mode\n", undinic, ( undinic->irq_supported ? "interrupt" : "polling" ) ); if ( strncmp ( ( ( char * ) undi_iface.IfaceType ), "Etherboot",