summaryrefslogtreecommitdiff
path: root/sys/dev/ic/siop.c
diff options
context:
space:
mode:
authorKenneth R Westerback <krw@cvs.openbsd.org>2009-11-22 14:14:12 +0000
committerKenneth R Westerback <krw@cvs.openbsd.org>2009-11-22 14:14:12 +0000
commit2c11f73dede318e822acc869f050872a3bce9c59 (patch)
treebc79276a3887621718c2b035dc5adbf2daf52b93 /sys/dev/ic/siop.c
parentccc027bb2ba3e9fb45f59ef7ce17214694d0f665 (diff)
Bring last drivers fully into the NO_CCB world by replacing
TRY_AGAIN_LATER uses with equivalent NO_CCB. Eliminates confusion between the two as was always intended. buf I/O's that can't be started get pushed back onto the front of the queue and retried. Others get sent back to originator as failures. No more epi-cycle looping inside the SCSI midlayer hoping the problem goes away. Various testers, no objection from miod@ as vs(4) was tested by nick@.
Diffstat (limited to 'sys/dev/ic/siop.c')
-rw-r--r--sys/dev/ic/siop.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/dev/ic/siop.c b/sys/dev/ic/siop.c
index 3353177fefc..6c412294d61 100644
--- a/sys/dev/ic/siop.c
+++ b/sys/dev/ic/siop.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: siop.c,v 1.53 2009/01/18 05:09:43 krw Exp $ */
+/* $OpenBSD: siop.c,v 1.54 2009/11/22 14:14:10 krw Exp $ */
/* $NetBSD: siop.c,v 1.79 2005/11/18 23:10:32 bouyer Exp $ */
/*
@@ -1386,7 +1386,7 @@ siop_scsicmd(xs)
"target %d\n", sc->sc_c.sc_dev.dv_xname,
target);
splx(s);
- return(TRY_AGAIN_LATER);
+ return(NO_CCB);
}
siop_target =
(struct siop_target*)sc->sc_c.targets[target];
@@ -1403,7 +1403,7 @@ siop_scsicmd(xs)
printf("%s: can't alloc lunsw for target %d\n",
sc->sc_c.sc_dev.dv_xname, target);
splx(s);
- return(TRY_AGAIN_LATER);
+ return(NO_CCB);
}
for (i=0; i < 8; i++)
siop_target->siop_lun[i] = NULL;
@@ -1418,7 +1418,7 @@ siop_scsicmd(xs)
"target %d lun %d\n",
sc->sc_c.sc_dev.dv_xname, target, lun);
splx(s);
- return(TRY_AGAIN_LATER);
+ return(NO_CCB);
}
}
@@ -1461,7 +1461,7 @@ siop_scsicmd(xs)
siop_cmd->cmd_c.status = CMDST_FREE;
TAILQ_INSERT_TAIL(&sc->free_list, siop_cmd, next);
splx(s);
- return(TRY_AGAIN_LATER);
+ return(NO_CCB);
}
bus_dmamap_sync(sc->sc_c.sc_dmat,
siop_cmd->cmd_c.dmamap_data, 0,