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