diff options
author | 2009-01-18 05:09:43 +0000 | |
---|---|---|
committer | 2009-01-18 05:09:43 +0000 | |
commit | b65a24f057b75d5b0132a501d4c85465ef4b4dfd (patch) | |
tree | 47ebf7bd364a7098870c9522b3e708cf710dfd3b /sys | |
parent | Don't lose ccb's if there are problems allocating the structures needed (diff) | |
download | wireguard-openbsd-b65a24f057b75d5b0132a501d4c85465ef4b4dfd.tar.xz wireguard-openbsd-b65a24f057b75d5b0132a501d4c85465ef4b4dfd.zip |
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.c | 4 |
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); } |