summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorKenneth R Westerback <krw@cvs.openbsd.org>2009-01-18 05:09:44 +0000
committerKenneth R Westerback <krw@cvs.openbsd.org>2009-01-18 05:09:44 +0000
commit35027e13c633b63c66b8afff3ead2991e1a5971a (patch)
tree3db85f413397d4c324aab5293438bbcac0f4245c /sys
parent86fd9508a2a6adcf3c8438071e965a1cd3c9f101 (diff)
Put ccb back on free list if we bail out because we can't map the
data buffer.
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/ic/siop.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/ic/siop.c b/sys/dev/ic/siop.c
index 043f3f8f84f..3353177fefc 100644
--- a/sys/dev/ic/siop.c
+++ b/sys/dev/ic/siop.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: siop.c,v 1.52 2009/01/18 04:47:54 krw Exp $ */
+/* $OpenBSD: siop.c,v 1.53 2009/01/18 05:09:43 krw Exp $ */
/* $NetBSD: siop.c,v 1.79 2005/11/18 23:10:32 bouyer Exp $ */
/*
@@ -1458,6 +1458,8 @@ siop_scsicmd(xs)
if (error) {
printf("%s: unable to load data DMA map: %d\n",
sc->sc_c.sc_dev.dv_xname, error);
+ siop_cmd->cmd_c.status = CMDST_FREE;
+ TAILQ_INSERT_TAIL(&sc->free_list, siop_cmd, next);
splx(s);
return(TRY_AGAIN_LATER);
}