diff --git a/Kernel/Net/E1000NetworkAdapter.cpp b/Kernel/Net/E1000NetworkAdapter.cpp index 241c6436d2..027063c623 100644 --- a/Kernel/Net/E1000NetworkAdapter.cpp +++ b/Kernel/Net/E1000NetworkAdapter.cpp @@ -425,10 +425,8 @@ void E1000NetworkAdapter::receive() { auto* rx_descriptors = (e1000_tx_desc*)m_rx_descriptors_region->vaddr().as_ptr(); u32 rx_current; - for (;;) { + for (u32 i = 0; i < number_of_rx_descriptors; i++) { rx_current = in32(REG_RXDESCTAIL) % number_of_rx_descriptors; - if (rx_current == (in32(REG_RXDESCHEAD) % number_of_rx_descriptors)) - return; rx_current = (rx_current + 1) % number_of_rx_descriptors; if (!(rx_descriptors[rx_current].status & 1)) break;