summaryrefslogtreecommitdiff
path: root/sys/dev/ic
diff options
context:
space:
mode:
authorDamien Bergamini <damien@cvs.openbsd.org>2006-02-15 17:23:27 +0000
committerDamien Bergamini <damien@cvs.openbsd.org>2006-02-15 17:23:27 +0000
commit246be331c73373ca973da35d730fbe182cfb5b5d (patch)
tree5970742a865835db5642d5f53bfd62c5f4025474 /sys/dev/ic
parentc812cb634c6aec5db1340b5e441434ae11489dd6 (diff)
don't re-init the interface on watchdog timeout. we need to reload the
firmware which can't be done outside of a process context. instead, just turn the interface down (rt2661_stop) for now.
Diffstat (limited to 'sys/dev/ic')
-rw-r--r--sys/dev/ic/rt2661.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/dev/ic/rt2661.c b/sys/dev/ic/rt2661.c
index 415b62f1ff1..56ca6572e79 100644
--- a/sys/dev/ic/rt2661.c
+++ b/sys/dev/ic/rt2661.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rt2661.c,v 1.8 2006/01/14 12:43:27 damien Exp $ */
+/* $OpenBSD: rt2661.c,v 1.9 2006/02/15 17:23:26 damien Exp $ */
/*-
* Copyright (c) 2006
@@ -1959,7 +1959,8 @@ rt2661_watchdog(struct ifnet *ifp)
if (sc->sc_tx_timer > 0) {
if (--sc->sc_tx_timer == 0) {
printf("%s: device timeout\n", sc->sc_dev.dv_xname);
- rt2661_init(ifp);
+ ifp->if_flags &= ~IFF_UP;
+ rt2661_stop(ifp, 1);
ifp->if_oerrors++;
return;
}