From e00b92225dd25f26635075c227d2298024d7abc9 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Tue, 21 May 2024 01:52:19 +0300 Subject: [PATCH] Kernel: Fix E1000 interrupt handling condition I had written the ICR register check backwards which lead to interrupt handling only when it was not needed, and no handling when it was needed. This somehow still worked, just much slower often requiring tcp resends from the server. --- kernel/kernel/Networking/E1000/E1000.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/kernel/Networking/E1000/E1000.cpp b/kernel/kernel/Networking/E1000/E1000.cpp index e06ee43a..a7257e00 100644 --- a/kernel/kernel/Networking/E1000/E1000.cpp +++ b/kernel/kernel/Networking/E1000/E1000.cpp @@ -290,7 +290,7 @@ namespace Kernel void E1000::handle_irq() { - if (read32(REG_ICR) & ICR_RxQ0) + if (!(read32(REG_ICR) & ICR_RxQ0)) return; SpinLockGuard _(m_lock);