summaryrefslogtreecommitdiff
path: root/sys/dev/ic/adv.c
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2009-09-04 04:57:15 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2009-09-04 04:57:15 +0000
commit65b93c258bf156ae4199603a900a7d1106018b97 (patch)
tree57026a13051f91c4d60de35a78e2a7bbc6a00f98 /sys/dev/ic/adv.c
parentaf55e5eed6037a04aa342139803575fcce320c3c (diff)
Missing scsi_done() in some error path returning COMPLETE; ok dlg@
Diffstat (limited to 'sys/dev/ic/adv.c')
-rw-r--r--sys/dev/ic/adv.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/dev/ic/adv.c b/sys/dev/ic/adv.c
index 394d75e4191..df94aab17bc 100644
--- a/sys/dev/ic/adv.c
+++ b/sys/dev/ic/adv.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: adv.c,v 1.25 2009/08/29 13:58:51 jasper Exp $ */
+/* $OpenBSD: adv.c,v 1.26 2009/09/04 04:57:14 miod Exp $ */
/* $NetBSD: adv.c,v 1.6 1998/10/28 20:39:45 dante Exp $ */
/*
@@ -653,6 +653,10 @@ adv_scsi_cmd(xs)
xs->error = XS_DRIVER_STUFFUP;
adv_free_ccb(sc, ccb);
+ xs->flags |= ITSDONE;
+ s = splbio();
+ scsi_done(xs);
+ splx(s);
return (COMPLETE);
}
bus_dmamap_sync(dmat, ccb->dmamap_xfer,
@@ -706,6 +710,7 @@ adv_scsi_cmd(xs)
if (adv_poll(sc, xs, ccb->timeout))
adv_timeout(ccb);
}
+
return (COMPLETE);
}