summaryrefslogtreecommitdiff
path: root/sys/dev/ic
diff options
context:
space:
mode:
authorKenneth R Westerback <krw@cvs.openbsd.org>2009-02-20 00:36:13 +0000
committerKenneth R Westerback <krw@cvs.openbsd.org>2009-02-20 00:36:13 +0000
commitf50252a8a875b94708a9f1ab28514a9bda9c888f (patch)
tree527978c0d155dd2dd4442a8359e0105d4687eca9 /sys/dev/ic
parent5878b34e91ffc2829d4ac0e0b62b116ff28f1b7c (diff)
Bring NO_CCB to cac(4), which helps bio work better without
generating worrying error messages. Or possibly losing i/o's. tested by jbg@ ok deraadt@
Diffstat (limited to 'sys/dev/ic')
-rw-r--r--sys/dev/ic/cac.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/dev/ic/cac.c b/sys/dev/ic/cac.c
index 92cad44fb30..7cbf5507960 100644
--- a/sys/dev/ic/cac.c
+++ b/sys/dev/ic/cac.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cac.c,v 1.28 2009/02/16 21:19:06 miod Exp $ */
+/* $OpenBSD: cac.c,v 1.29 2009/02/20 00:36:12 krw Exp $ */
/* $NetBSD: cac.c,v 1.15 2000/11/08 19:20:35 ad Exp $ */
/*
@@ -404,7 +404,7 @@ cac_cmd(struct cac_softc *sc, int command, void *data, int datasize,
/* Synchronous commands musn't wait. */
if ((*sc->sc_cl->cl_fifo_full)(sc)) {
cac_ccb_free(sc, ccb);
- rv = -1;
+ rv = ENOMEM; /* Causes NO_CCB, i/o is retried. */
} else {
ccb->ccb_flags |= CAC_CCB_ACTIVE;
(*sc->sc_cl->cl_submit)(sc, ccb);
@@ -714,7 +714,7 @@ cac_scsi_cmd(xs)
if (error == ENOMEM) {
splx(s);
- return (TRY_AGAIN_LATER);
+ return (NO_CCB);
} else if (poll) {
splx(s);
return (TRY_AGAIN_LATER);