summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/ic/wdc.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/dev/ic/wdc.c b/sys/dev/ic/wdc.c
index e0b7627bc24..54be4f2ce28 100644
--- a/sys/dev/ic/wdc.c
+++ b/sys/dev/ic/wdc.c
@@ -1,4 +1,4 @@
-/* $NetBSD: wdc.c,v 1.152 2003/11/02 11:07:46 wiz Exp $ */
+/* $NetBSD: wdc.c,v 1.153 2003/11/07 08:58:33 bouyer Exp $ */
/*
* Copyright (c) 1998, 2001, 2003 Manuel Bouyer. All rights reserved.
@@ -70,7 +70,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wdc.c,v 1.152 2003/11/02 11:07:46 wiz Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wdc.c,v 1.153 2003/11/07 08:58:33 bouyer Exp $");
#ifndef WDCDEBUG
#define WDCDEBUG
@@ -1082,6 +1082,10 @@ wdc_reset_channel(drvp, flags)
chp->wdc->sc_dev.dv_xname, chp->channel, drvp->drive),
DEBUG_FUNCS);
if ((flags & AT_POLL) == 0) {
+ if (chp->ch_flags & WDCF_TH_RESET) {
+ /* no need to schedule a reset more than one time */
+ return;
+ }
chp->ch_flags |= WDCF_TH_RESET;
chp->ch_queue->queue_freeze++;
wakeup(&chp->thread);