summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorNiklas Hallqvist <niklas@cvs.openbsd.org>2002-04-03 16:47:58 +0000
committerNiklas Hallqvist <niklas@cvs.openbsd.org>2002-04-03 16:47:58 +0000
commitdd32a9b73068bf051a35f394dbd42ef955975dee (patch)
tree70bc9cc67e5590e764fb4d8de7d85af3785318bf /sys
parentd0c4c7ce8860304b286a4939de9a9e7f5965a02d (diff)
deal with ccb shortage correctly, ok mickey@
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/i2o/ioprbs.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/sys/dev/i2o/ioprbs.c b/sys/dev/i2o/ioprbs.c
index a24085b32b3..16944297648 100644
--- a/sys/dev/i2o/ioprbs.c
+++ b/sys/dev/i2o/ioprbs.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ioprbs.c,v 1.2 2002/03/14 01:26:53 millert Exp $ */
+/* $OpenBSD: ioprbs.c,v 1.3 2002/04/03 16:47:57 niklas Exp $ */
/*
* Copyright (c) 2001 Niklas Hallqvist
@@ -523,16 +523,12 @@ ioprbs_scsi_cmd(xs)
ccb = ioprbs_get_ccb(sc, xs->flags);
/*
- * Are we out of commands, something is wrong.
- *
+ * We are out of commands, try again in a little while.
*/
if (ccb == NULL) {
- printf("%s: no ccb in ioprbs_scsi_cmd",
- sc->sc_dv.dv_xname);
xs->error = XS_DRIVER_STUFFUP;
- xs->flags |= ITSDONE;
- scsi_done(xs);
- goto ready;
+ IOPRBS_UNLOCK(sc, lock);
+ return (TRY_AGAIN_LATER);
}
ccb->ic_blockno = blockno;