amd64/73360: sk0: watchdog timeout
Wolfgang S. Rupprecht
wolfgang+gnus20041031T133906 at dailyplanet.dontspam.wsrcc.com
Sun Oct 31 14:17:05 PST 2004
simsong at 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/
More information about the freebsd-amd64
mailing list