소스 검색

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 18 년 전
부모
커밋
304d1e9fa5
1개의 변경된 파일7개의 추가작업 그리고 1개의 파일을 삭제
  1. 7
    1
      src/arch/i386/drivers/net/undinet.c

+ 7
- 1
src/arch/i386/drivers/net/undinet.c 파일 보기

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…
취소
저장