summaryrefslogtreecommitdiff
path: root/sys/dev
diff options
context:
space:
mode:
authorfvdl <fvdl@NetBSD.org>2000-05-27 23:59:58 +0000
committerfvdl <fvdl@NetBSD.org>2000-05-27 23:59:58 +0000
commitcb5289547f95d5f10ea62fbd7fee35426ecd77b4 (patch)
tree24376c6067a6f6638b812a5d0b817d12d5f8ebb2 /sys/dev
parent6a082e47975d3cc7c79246f30fd17ab80581026e (diff)
At least try to do something useful in the XS_BUSY case; don't cause
a panic by sleeping in an interrupt context.
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/scsipi/scsipi_base.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/dev/scsipi/scsipi_base.c b/sys/dev/scsipi/scsipi_base.c
index 60f7bd1d5cb..fa456e1fb89 100644
--- a/sys/dev/scsipi/scsipi_base.c
+++ b/sys/dev/scsipi/scsipi_base.c
@@ -1,4 +1,4 @@
-/* $NetBSD: scsipi_base.c,v 1.35 2000/05/23 10:16:43 bouyer Exp $ */
+/* $NetBSD: scsipi_base.c,v 1.36 2000/05/27 23:59:58 fvdl Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -777,14 +777,14 @@ sc_err1(xs, async)
if (xs->retries) {
if ((xs->xs_control & XS_CTL_POLL) != 0)
delay(1000000);
- else if ((xs->xs_control &
+ else if (!async && (xs->xs_control &
(XS_CTL_NOSLEEP|XS_CTL_DISCOVERY)) == 0)
tsleep(&lbolt, PRIBIO, "scbusy", 0);
else
#if 0
timeout(scsipi_requeue, xs, hz);
#else
- goto lose;
+ goto retry;
#endif
}
case XS_TIMEOUT:
@@ -796,7 +796,6 @@ sc_err1(xs, async)
return (ERESTART);
}
case XS_DRIVER_STUFFUP:
- lose:
error = EIO;
break;