From 9d67a6ba342bb156a8362593ed90c25aa3134cf1 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sat, 14 Dec 2019 13:02:40 +0100 Subject: [PATCH] E1000: Disable interrupts while getting ready to wait on TX completion --- Kernel/Net/E1000NetworkAdapter.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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