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
 
423
 
424
 	if ( ! undinic->isr_processing ) {
424
 	if ( ! undinic->isr_processing ) {
425
 		/* Do nothing unless ISR has been triggered */
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
 			return;
432
 			return;
433
+		}
428
 
434
 
429
 		/* Start ISR processing */
435
 		/* Start ISR processing */
430
 		undinic->isr_processing = 1;
436
 		undinic->isr_processing = 1;

Loading…
Cancel
Save