diff --git a/drivers/ethernet/RTL8139.asm b/drivers/ethernet/RTL8139.asm index 7b4d298be1..df1cb5637f 100644 --- a/drivers/ethernet/RTL8139.asm +++ b/drivers/ethernet/RTL8139.asm @@ -211,6 +211,7 @@ virtual at ebx .irq_line db ? .hw_ver_id db ? + db ? ; align 4 .TX_DESC rd NUM_TX_DESC .size = $ - device @@ -821,7 +822,7 @@ int_handler: cmp eax, RX_BUFFER_SIZE jb .no_wrap - DEBUGF 2, "Wrapping" + DEBUGF 1, "Wrapping" sub eax, RX_BUFFER_SIZE .no_wrap: mov [device.rx_data_offset], eax @@ -960,7 +961,7 @@ int_handler: call cable .fail: - DEBUGF 2, "\n" + DEBUGF 1, "\n" pop edi esi ebx xor eax, eax inc eax diff --git a/drivers/netdrv.inc b/drivers/netdrv.inc index d074c1b5b9..222bf1ebe1 100644 --- a/drivers/netdrv.inc +++ b/drivers/netdrv.inc @@ -76,6 +76,11 @@ macro allocate_and_clear dest, size, err { xor eax, eax rep stosd + if (size - size/4*4) + mov ecx, size - size/4*4 + rep stosb + end if + } struc IOCTL {