Skip site navigation (1)Skip section navigation (2)
Date:      31 Oct 2004 14:17:04 -0800
From:      "Wolfgang S. Rupprecht" <wolfgang+gnus20041031T133906@dailyplanet.dontspam.wsrcc.com>
To:        freebsd-amd64@freebsd.org
Subject:   Re: amd64/73360: sk0: watchdog timeout
Message-ID:  <x7u0sawn1b.fsf@bonnet.wsrcc.com>
In-Reply-To: <200410312115.i9VLFisD013971@www.freebsd.org>
References:  <200410312115.i9VLFisD013971@www.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

simsong@acm.org (Simson L. Garfinkel) writes:
> sk0: watchdog timeout
> 
> I wanted you to know that the problem hasn't gone away.      

Looks like some sk hardware needs to have the tx prodded continually.

This solved my tx problem under openbsd/amd64 (grabbed from a netbsd
fix).  Maybe the freebsd drivers need something similar too?

--- if_sk.c	14 Oct 2004 15:27:39 -0000	1.47
+++ if_sk.c	17 Oct 2004 04:30:39 -0000
@@ -1949,8 +1946,11 @@ sk_txeof(struct sk_if_softc *sc_if)
 		}
 		sc_if->sk_cdata.sk_tx_cnt--;
 		SK_INC(idx, SK_TX_RING_CNT);
-		ifp->if_timer = 0;
 	}
+	if (sc_if->sk_cdata.sk_tx_cnt == 0)
+		ifp->if_timer = 0;
+	else /* nudge chip to keep tx ring moving */
+		CSR_WRITE_4(sc, sc_if->sk_tx_bmu, SK_TXBMU_TX_START);
 
 	sc_if->sk_cdata.sk_tx_cons = idx;


-- 
Wolfgang S. Rupprecht                http://www.wsrcc.com/wolfgang/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?x7u0sawn1b.fsf>