Compare commits
No commits in common. "e77de1804f4c229fb8fea3277c6f0c80c71243ae" and "ee8fca94392b246bfcbdd5945cfe498d74faed92" have entirely different histories.
e77de1804f
...
ee8fca9439
|
@ -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,8 +438,10 @@ namespace Kernel
|
||||||
{
|
{
|
||||||
LockGuard _(m_mutex);
|
LockGuard _(m_mutex);
|
||||||
|
|
||||||
if (m_should_ack.compare_exchange(true, false))
|
if (m_should_ack)
|
||||||
{
|
{
|
||||||
|
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;
|
||||||
|
@ -508,7 +510,6 @@ 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