From 1f078827c4a3f5b2edb7c6a3c0af04eba71cbeb0 Mon Sep 17 00:00:00 2001 From: Thomas Wagenveld Date: Sat, 31 Jul 2021 19:45:42 +0200 Subject: [PATCH] Kernel: Set initial link up status for RTL8139 On startup the link was assumed to be down, making the adapter not work until the link up status was cycled. --- Kernel/Net/RTL8139NetworkAdapter.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Kernel/Net/RTL8139NetworkAdapter.cpp b/Kernel/Net/RTL8139NetworkAdapter.cpp index 6348651333..be85fdf511 100644 --- a/Kernel/Net/RTL8139NetworkAdapter.cpp +++ b/Kernel/Net/RTL8139NetworkAdapter.cpp @@ -260,6 +260,9 @@ void RTL8139NetworkAdapter::reset() // choose irqs, then clear any pending out16(REG_IMR, INT_RXOK | INT_RXERR | INT_TXOK | INT_TXERR | INT_RX_BUFFER_OVERFLOW | INT_LINK_CHANGE | INT_RX_FIFO_OVERFLOW | INT_LENGTH_CHANGE | INT_SYSTEM_ERROR); out16(REG_ISR, 0xffff); + + // Set the initial link up status. + m_link_up = (in8(REG_MSR) & MSR_LINKB) == 0; } UNMAP_AFTER_INIT void RTL8139NetworkAdapter::read_mac_address()