1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-10 09:47:35 +00:00

Kernel: Avoid resetting the IRQ mask for E1000 on each interrupt

This commit is contained in:
Gunnar Beutner 2021-04-26 18:37:40 +02:00 committed by Andreas Kling
parent 897f001076
commit eaf8fc90e7

View file

@ -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()