summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorMarcus Glocker <mglocker@cvs.openbsd.org>2006-08-29 17:26:39 +0000
committerMarcus Glocker <mglocker@cvs.openbsd.org>2006-08-29 17:26:39 +0000
commitc68d5120799cd3aa3905e6e522ed242e566f607b (patch)
tree27567428456bf42ff8237430a66a56e3360fda26 /sys/dev
parentf8006ff80be0742218b8d5be35f70589af8ee9c1 (diff)
Don't panic when watchdog timeout is called.
formal ok deraadt@
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/ic/acx.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/sys/dev/ic/acx.c b/sys/dev/ic/acx.c
index de95a8ec027..87946fd3e98 100644
--- a/sys/dev/ic/acx.c
+++ b/sys/dev/ic/acx.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: acx.c,v 1.49 2006/08/21 09:39:37 mglocker Exp $ */
+/* $OpenBSD: acx.c,v 1.50 2006/08/29 17:26:38 mglocker Exp $ */
/*
* Copyright (c) 2006 Jonathan Gray <jsg@openbsd.org>
@@ -1016,7 +1016,7 @@ acx_start(struct ifnet *ifp)
ifp->if_flags |= IFF_OACTIVE;
if (trans && ifp->if_timer == 0)
- ifp->if_timer = 1;
+ ifp->if_timer = 5;
sc->sc_txtimer = 5;
}
@@ -1033,12 +1033,11 @@ acx_watchdog(struct ifnet *ifp)
if (sc->sc_txtimer) {
if (--sc->sc_txtimer == 0) {
printf("%s: watchdog timeout\n", ifp->if_xname);
- acx_stop(ifp->if_softc);
- acx_init(ifp->if_softc);
+ acx_txeof(ifp->if_softc);
ifp->if_oerrors++;
return;
}
- ifp->if_timer = 1;
+ ifp->if_timer = 5;
}
ieee80211_watchdog(ifp);
@@ -1156,7 +1155,7 @@ acx_txeof(struct acx_softc *sc)
}
bd->tx_used_start = idx;
- ifp->if_timer = bd->tx_used_count == 0 ? 0 : 1;
+ ifp->if_timer = bd->tx_used_count == 0 ? 0 : 5;
sc->sc_txtimer = 0;
if (bd->tx_used_count != ACX_TX_DESC_CNT) {