From 2c11f73dede318e822acc869f050872a3bce9c59 Mon Sep 17 00:00:00 2001 From: Kenneth R Westerback Date: Sun, 22 Nov 2009 14:14:12 +0000 Subject: 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@. --- sys/dev/ic/siop.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'sys/dev/ic/siop.c') 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, -- cgit v1.2.3