kernel/network: fix ARP remove on devices other than 0
arp_api .remove forgot the per-device table offset, so it deleted from device 0's table and shifted device 1's entries into it.
This commit is contained in:
1 parent
bd071d588b
commit
5139f994c4
1 file changed
+4
-2
@@ -688,10 +688,12 @@ arp_api:
|
||||
; ecx = # entry
|
||||
cmp ecx, [ARP_entries + eax]
|
||||
jae .error
|
||||
imul ecx, sizeof.ARP_entry
|
||||
lea esi, [ARP_table + ecx]
|
||||
mov edi, eax
|
||||
shr edi, 2
|
||||
mov esi, edi
|
||||
imul esi, sizeof.ARP_entry*ARP_TABLE_SIZE
|
||||
imul ecx, sizeof.ARP_entry
|
||||
lea esi, [ARP_table + esi + ecx]
|
||||
call arp_del_entry
|
||||
ret
|
||||
|
||||
|
||||
Reference in new issue
Block a user