E1000: Disable interrupts while getting ready to wait on TX completion

This commit is contained in:
Andreas Kling 2019-12-14 13:02:40 +01:00
parent 7d0583a33f
commit 9d67a6ba34

View file

@ -340,10 +340,13 @@ void E1000NetworkAdapter::send_raw(const u8* data, int length)
#endif #endif
tx_current = (tx_current + 1) % number_of_tx_descriptors; tx_current = (tx_current + 1) % number_of_tx_descriptors;
out32(REG_TXDESCTAIL, tx_current); out32(REG_TXDESCTAIL, tx_current);
cli();
enable_irq(); enable_irq();
for (;;) { for (;;) {
if (descriptor.status) if (descriptor.status) {
sti();
break; break;
}
current->wait_on(m_wait_queue); current->wait_on(m_wait_queue);
} }
#ifdef E1000_DEBUG #ifdef E1000_DEBUG