|
@@ -558,8 +558,10 @@ int undinet_probe ( struct undi_device *undi ) {
|
558
|
558
|
DBGC ( undinic, "UNDINIC %p has type %s, speed %d, flags %08x\n",
|
559
|
559
|
undinic, undi_iface.IfaceType, undi_iface.LinkSpeed,
|
560
|
560
|
undi_iface.ServiceFlags );
|
561
|
|
- if ( undi_iface.ServiceFlags & SUPPORTED_IRQ )
|
|
561
|
+ if ( ( undi_iface.ServiceFlags & SUPPORTED_IRQ ) &&
|
|
562
|
+ ( undinic->irq != 0 ) ) {
|
562
|
563
|
undinic->irq_supported = 1;
|
|
564
|
+ }
|
563
|
565
|
DBGC ( undinic, "UNDINIC %p using %s mode\n", undinic,
|
564
|
566
|
( undinic->irq_supported ? "interrupt" : "polling" ) );
|
565
|
567
|
if ( strncmp ( ( ( char * ) undi_iface.IfaceType ), "Etherboot",
|