diff options
-rw-r--r-- | Kernel/Net/E1000NetworkAdapter.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Kernel/Net/E1000NetworkAdapter.cpp b/Kernel/Net/E1000NetworkAdapter.cpp index 3a93b30182..ff9ee3f538 100644 --- a/Kernel/Net/E1000NetworkAdapter.cpp +++ b/Kernel/Net/E1000NetworkAdapter.cpp @@ -340,10 +340,13 @@ void E1000NetworkAdapter::send_raw(const u8* data, int length) #endif tx_current = (tx_current + 1) % number_of_tx_descriptors; out32(REG_TXDESCTAIL, tx_current); + cli(); enable_irq(); for (;;) { - if (descriptor.status) + if (descriptor.status) { + sti(); break; + } current->wait_on(m_wait_queue); } #ifdef E1000_DEBUG |