Browse Source

Don't rely on retry.c's periodically calling currticks() in order to

allow the UNDI NIC interrupt to happen.
tags/v0.9.3
Michael Brown 17 years ago
parent
commit
304d1e9fa5
1 changed files with 7 additions and 1 deletions
  1. 7
    1
      src/arch/i386/drivers/net/undinet.c

+ 7
- 1
src/arch/i386/drivers/net/undinet.c View File

@@ -423,8 +423,14 @@ static void undinet_poll ( struct net_device *netdev ) {
423 423
 
424 424
 	if ( ! undinic->isr_processing ) {
425 425
 		/* Do nothing unless ISR has been triggered */
426
-		if ( ! undinet_isr_triggered() )
426
+		if ( ! undinet_isr_triggered() ) {
427
+			/* Allow interrupt to occur */
428
+			__asm__ __volatile__ ( REAL_CODE ( "sti\n\t"
429
+							   "nop\n\t"
430
+							   "nop\n\t"
431
+							   "cli\n\t" ) : : );
427 432
 			return;
433
+		}
428 434
 
429 435
 		/* Start ISR processing */
430 436
 		undinic->isr_processing = 1;

Loading…
Cancel
Save