From 7d3a0d9fb02b4248bd2cb6a8959ed24484030774 Mon Sep 17 00:00:00 2001 From: hidnplayr Date: Sun, 1 Aug 2010 17:39:54 +0000 Subject: [PATCH] Bugfix in 3com network driver concerning tx reset on transmit. git-svn-id: svn://kolibrios.org@1545 a494cfbc-eb01-0410-851d-a64ba20cac60 --- kernel/branches/net/drivers/3c59x.asm | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/kernel/branches/net/drivers/3c59x.asm b/kernel/branches/net/drivers/3c59x.asm index 4c429b575e..8303381d92 100644 --- a/kernel/branches/net/drivers/3c59x.asm +++ b/kernel/branches/net/drivers/3c59x.asm @@ -2166,7 +2166,7 @@ mdio_write: ; Checks TxStatus queue. ; Return value ; al - 0 no error was found -; al - 1 error was found TxReset is needed +; al - 1 error was found TxReset was needed ; Destroyed registers ; eax, ecx, edx, ebp ; @@ -2187,7 +2187,7 @@ check_tx_status: test al, al jz .finish ; no error test al, 0x3f - jnz .finish ; error + jnz .error .no_error_found: ; clear current TxStatus entry which advances the next one xor al, al @@ -2198,6 +2198,10 @@ check_tx_status: ret + .error: + call tx_reset + ret + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -2219,8 +2223,6 @@ vortex_transmit: ja .finish ; packet is too long call check_tx_status - test al, al - jnz tx_reset ; switch to register window 7 set_io 0 @@ -2278,9 +2280,6 @@ boomerang_transmit: call check_tx_status - test al, al - jnz tx_reset - ; calculate descriptor address mov esi, [device.prev_dpd] DEBUGF 1,"Previous DPD: %x\n", esi