summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Wagenveld <thomas@thomasw.dev>2021-07-31 19:45:42 +0200
committerGunnar Beutner <gunnar@beutner.name>2021-08-03 10:20:51 +0200
commit1f078827c4a3f5b2edb7c6a3c0af04eba71cbeb0 (patch)
tree93c3b224bb6d69ead124ee87017572ea0eb773a1
parentdf6db8b8cce06842ce720c2ce2fe087b1d92dd5f (diff)
downloadserenity-1f078827c4a3f5b2edb7c6a3c0af04eba71cbeb0.zip
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.
-rw-r--r--Kernel/Net/RTL8139NetworkAdapter.cpp3
1 files changed, 3 insertions, 0 deletions
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()