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>