|
@@ -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;
|