diff options
author | Jason Wright <jason@cvs.openbsd.org> | 2002-09-28 02:04:45 +0000 |
---|---|---|
committer | Jason Wright <jason@cvs.openbsd.org> | 2002-09-28 02:04:45 +0000 |
commit | addc2e3fc16a753582603154730841748a320828 (patch) | |
tree | 3861fcd58b7f0dbf86280de29b4585568beee7af /sys/dev | |
parent | a28ffdd19696508fd5661847bfddc7076accd6e5 (diff) |
- disable if_timer handling (there's a bug which causes this not to get
reset, causing watchdog timeouts). The interfaces work fine, but the
timer doesn't get reset correctly.
- make IFF_SIMPLEX only set iff the media is IFM_FDX (prevents ip6 from
seeing it's packets and thinking another machine with the same mac is
on the wire when running half-duplex); from NetBSD.
Diffstat (limited to 'sys/dev')
-rw-r--r-- | sys/dev/ic/hme.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/dev/ic/hme.c b/sys/dev/ic/hme.c index eb3c7149417..e055d2c14de 100644 --- a/sys/dev/ic/hme.c +++ b/sys/dev/ic/hme.c @@ -1,4 +1,4 @@ -/* $OpenBSD: hme.c,v 1.19 2002/08/07 03:42:14 jason Exp $ */ +/* $OpenBSD: hme.c,v 1.20 2002/09/28 02:04:44 jason Exp $ */ /* $NetBSD: hme.c,v 1.21 2001/07/07 15:59:37 thorpej Exp $ */ /*- @@ -662,7 +662,7 @@ hme_start(ifp) if (cnt != 0) { sc->sc_tx_prod = bix; - ifp->if_timer = 5; + ifp->if_timer = 0; } } @@ -971,10 +971,13 @@ hme_mii_statchg(dev) /* Set the MAC Full Duplex bit appropriately */ v = bus_space_read_4(t, mac, HME_MACI_TXCFG); - if ((IFM_OPTIONS(sc->sc_mii.mii_media_active) & IFM_FDX) != 0) + if ((IFM_OPTIONS(sc->sc_mii.mii_media_active) & IFM_FDX) != 0) { v |= HME_MAC_TXCFG_FULLDPLX; - else + sc->sc_arpcom.ac_if.if_flags |= IFF_SIMPLEX; + } else { v &= ~HME_MAC_TXCFG_FULLDPLX; + sc->sc_arpcom.ac_if.if_flags &= ~IFF_SIMPLEX; + } bus_space_write_4(t, mac, HME_MACI_TXCFG, v); /* If an external transceiver is selected, enable its MII drivers */ |