diff --git a/kernel/trunk/network/ethernet.inc b/kernel/trunk/network/ethernet.inc index 6d9c46bc55..61ec373629 100644 --- a/kernel/trunk/network/ethernet.inc +++ b/kernel/trunk/network/ethernet.inc @@ -94,6 +94,9 @@ eth_input: popf +; Mark it as being an Ethernet Frame + mov [eax + NET_BUFF.type], NET_BUFF_ETH + ; Now queue an event to process it xor edx, edx mov eax, [ETH_input_event] diff --git a/kernel/trunk/network/icmp.inc b/kernel/trunk/network/icmp.inc index 4032284cbf..66d44396db 100644 --- a/kernel/trunk/network/icmp.inc +++ b/kernel/trunk/network/icmp.inc @@ -214,7 +214,8 @@ icmp_input: mov [esi + ICMP_header.Type], ICMP_ECHOREPLY mov eax, [esp] - lea esi, [eax + NET_BUFF.data] + mov esi, [eax + NET_BUFF.offset] + add esi, eax ; Check frame type cmp [eax + NET_BUFF.type], NET_BUFF_ETH