diff options
author | Michael Brown | 2007-07-29 16:26:50 +0200 |
---|---|---|
committer | Michael Brown | 2007-07-29 16:27:47 +0200 |
commit | 304d1e9fa59e0a79761d48f168b60c093647b948 (patch) | |
tree | ae62d13f6224758dfd2665adaa5f3c585da258ba | |
parent | Added HMAC code from TLS project (diff) | |
download | ipxe-304d1e9fa59e0a79761d48f168b60c093647b948.tar.gz ipxe-304d1e9fa59e0a79761d48f168b60c093647b948.tar.xz ipxe-304d1e9fa59e0a79761d48f168b60c093647b948.zip |
Don't rely on retry.c's periodically calling currticks() in order to
allow the UNDI NIC interrupt to happen.
-rw-r--r-- | src/arch/i386/drivers/net/undinet.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/arch/i386/drivers/net/undinet.c b/src/arch/i386/drivers/net/undinet.c index 38032ab1..a5746ce8 100644 --- a/src/arch/i386/drivers/net/undinet.c +++ b/src/arch/i386/drivers/net/undinet.c @@ -423,8 +423,14 @@ static void undinet_poll ( struct net_device *netdev ) { if ( ! undinic->isr_processing ) { /* Do nothing unless ISR has been triggered */ - if ( ! undinet_isr_triggered() ) + if ( ! undinet_isr_triggered() ) { + /* Allow interrupt to occur */ + __asm__ __volatile__ ( REAL_CODE ( "sti\n\t" + "nop\n\t" + "nop\n\t" + "cli\n\t" ) : : ); return; + } /* Start ISR processing */ undinic->isr_processing = 1; |