Compare commits
2 Commits
ee8fca9439
...
e77de1804f
Author | SHA1 | Date |
---|---|---|
Bananymous | e77de1804f | |
Bananymous | e00b92225d |
|
@ -290,7 +290,7 @@ namespace Kernel
|
||||||
|
|
||||||
void E1000::handle_irq()
|
void E1000::handle_irq()
|
||||||
{
|
{
|
||||||
if (read32(REG_ICR) & ICR_RxQ0)
|
if (!(read32(REG_ICR) & ICR_RxQ0))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
SpinLockGuard _(m_lock);
|
SpinLockGuard _(m_lock);
|
||||||
|
|
|
@ -438,10 +438,8 @@ namespace Kernel
|
||||||
{
|
{
|
||||||
LockGuard _(m_mutex);
|
LockGuard _(m_mutex);
|
||||||
|
|
||||||
if (m_should_ack)
|
if (m_should_ack.compare_exchange(true, false))
|
||||||
{
|
{
|
||||||
m_should_ack = false;
|
|
||||||
|
|
||||||
ASSERT(m_connection_info.has_value());
|
ASSERT(m_connection_info.has_value());
|
||||||
auto* target_address = reinterpret_cast<const sockaddr*>(&m_connection_info->address);
|
auto* target_address = reinterpret_cast<const sockaddr*>(&m_connection_info->address);
|
||||||
auto target_address_len = m_connection_info->address_len;
|
auto target_address_len = m_connection_info->address_len;
|
||||||
|
@ -510,6 +508,7 @@ namespace Kernel
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_semaphore.unblock();
|
||||||
m_semaphore.block_with_wake_time(current_ms + retransmit_timeout_ms);
|
m_semaphore.block_with_wake_time(current_ms + retransmit_timeout_ms);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue