summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorJason Wright <jason@cvs.openbsd.org>2002-09-28 02:04:45 +0000
committerJason Wright <jason@cvs.openbsd.org>2002-09-28 02:04:45 +0000
commitaddc2e3fc16a753582603154730841748a320828 (patch)
tree3861fcd58b7f0dbf86280de29b4585568beee7af /sys/dev
parenta28ffdd19696508fd5661847bfddc7076accd6e5 (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.c11
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 */