summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2015-01-14 21:14:50 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2015-01-14 21:14:50 +0000
commitf92c211ac272e848cb64b16c918e912a0eaf0983 (patch)
tree0bc8a8f9071d89ae6b0d77418eb378f7a18bcef2 /sys/arch
parent08d450b3982a2443a0576e01c26b6fdb596c8e5f (diff)
When the outcome of the watchdog processing is a reset, do not bother checking
further pending requests, since they will be forcefully failed by the reset routine.
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/sparc/dev/xd.c6
-rw-r--r--sys/arch/sparc/dev/xy.c6
2 files changed, 8 insertions, 4 deletions
diff --git a/sys/arch/sparc/dev/xd.c b/sys/arch/sparc/dev/xd.c
index 36f05375f69..8d1c1196c73 100644
--- a/sys/arch/sparc/dev/xd.c
+++ b/sys/arch/sparc/dev/xd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: xd.c,v 1.67 2015/01/14 21:13:46 miod Exp $ */
+/* $OpenBSD: xd.c,v 1.68 2015/01/14 21:14:49 miod Exp $ */
/* $NetBSD: xd.c,v 1.37 1997/07/29 09:58:16 fair Exp $ */
/*
@@ -2088,8 +2088,10 @@ xdc_tick(arg)
XD_STATE(xdcsc->reqs[lcv].mode) == XD_SUB_DONE)
continue;
xdcsc->reqs[lcv].ttl--;
- if (xdcsc->reqs[lcv].ttl == 0)
+ if (xdcsc->reqs[lcv].ttl == 0) {
reset = 1;
+ break; /* we're going to fail all requests anyway */
+ }
}
if (reset) {
printf("%s: watchdog timeout\n", xdcsc->sc_dev.dv_xname);
diff --git a/sys/arch/sparc/dev/xy.c b/sys/arch/sparc/dev/xy.c
index 3be42a1dfcb..e776a59d03d 100644
--- a/sys/arch/sparc/dev/xy.c
+++ b/sys/arch/sparc/dev/xy.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: xy.c,v 1.64 2015/01/14 21:13:46 miod Exp $ */
+/* $OpenBSD: xy.c,v 1.65 2015/01/14 21:14:49 miod Exp $ */
/* $NetBSD: xy.c,v 1.26 1997/07/19 21:43:56 pk Exp $ */
/*
@@ -1897,8 +1897,10 @@ xyc_tick(arg)
XY_STATE(xycsc->reqs[lcv].mode) == XY_SUB_DONE)
continue;
xycsc->reqs[lcv].ttl--;
- if (xycsc->reqs[lcv].ttl == 0)
+ if (xycsc->reqs[lcv].ttl == 0) {
reset = 1;
+ break; /* we're going to fail all requests anyway */
+ }
}
if (reset) {
printf("%s: watchdog timeout\n", xycsc->sc_dev.dv_xname);