From eaf8fc90e71b6ef877d1b3d8bfbd943de8f19f37 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Mon, 26 Apr 2021 18:37:40 +0200 Subject: [PATCH] Kernel: Avoid resetting the IRQ mask for E1000 on each interrupt --- Kernel/Net/E1000NetworkAdapter.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Kernel/Net/E1000NetworkAdapter.cpp b/Kernel/Net/E1000NetworkAdapter.cpp index c8eac8c668..46af215644 100644 --- a/Kernel/Net/E1000NetworkAdapter.cpp +++ b/Kernel/Net/E1000NetworkAdapter.cpp @@ -206,7 +206,6 @@ UNMAP_AFTER_INIT E1000NetworkAdapter::E1000NetworkAdapter(PCI::Address address, initialize_rx_descriptors(); initialize_tx_descriptors(); - out32(REG_INTERRUPT_MASK_SET, 0x1f6dc); out32(REG_INTERRUPT_MASK_SET, INTERRUPT_LSC | INTERRUPT_RXT0 | INTERRUPT_RXO); in32(REG_INTERRUPT_CAUSE_READ); @@ -219,8 +218,6 @@ UNMAP_AFTER_INIT E1000NetworkAdapter::~E1000NetworkAdapter() void E1000NetworkAdapter::handle_irq(const RegisterState&) { - out32(REG_INTERRUPT_MASK_CLEAR, 0xffffffff); - u32 status = in32(REG_INTERRUPT_CAUSE_READ); m_entropy_source.add_random_event(status); @@ -241,7 +238,7 @@ void E1000NetworkAdapter::handle_irq(const RegisterState&) m_wait_queue.wake_all(); - out32(REG_INTERRUPT_MASK_SET, INTERRUPT_LSC | INTERRUPT_RXT0 | INTERRUPT_RXO); + out32(REG_INTERRUPT_CAUSE_READ, 0xffffffff); } UNMAP_AFTER_INIT void E1000NetworkAdapter::detect_eeprom()