summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/scsi/sd.c8
-rw-r--r--sys/scsi/ss.c4
-rw-r--r--sys/scsi/st.c8
3 files changed, 15 insertions, 5 deletions
diff --git a/sys/scsi/sd.c b/sys/scsi/sd.c
index 9fdb433b4d6..e27acc3196e 100644
--- a/sys/scsi/sd.c
+++ b/sys/scsi/sd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sd.c,v 1.52 2002/03/14 01:27:13 millert Exp $ */
+/* $OpenBSD: sd.c,v 1.53 2002/06/09 00:05:57 art Exp $ */
/* $NetBSD: sd.c,v 1.111 1997/04/02 02:29:41 mycroft Exp $ */
/*-
@@ -596,8 +596,9 @@ done:
* Correctly set the buf to indicate a completed xfer
*/
bp->b_resid = bp->b_bcount;
+ s = splbio();
biodone(bp);
-
+ splx(s);
if (sd != NULL)
device_unref(&sd->sc_dev);
}
@@ -633,6 +634,9 @@ sdstart(v)
struct partition *p;
SC_DEBUG(sc_link, SDEV_DB2, ("sdstart "));
+
+ splassert(IPL_BIO);
+
/*
* Check if the device has room for another command
*/
diff --git a/sys/scsi/ss.c b/sys/scsi/ss.c
index 2acff32f95a..fb100c70916 100644
--- a/sys/scsi/ss.c
+++ b/sys/scsi/ss.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ss.c,v 1.45 2002/03/14 03:16:12 millert Exp $ */
+/* $OpenBSD: ss.c,v 1.46 2002/06/09 00:05:57 art Exp $ */
/* $NetBSD: ss.c,v 1.10 1996/05/05 19:52:55 christos Exp $ */
/*
@@ -605,7 +605,9 @@ done:
* Correctly set the buf to indicate a completed xfer
*/
bp->b_resid = bp->b_bcount;
+ s = splbio();
biodone(bp);
+ splx(s);
}
/*
diff --git a/sys/scsi/st.c b/sys/scsi/st.c
index e1e8e7069c8..bb7ce7a81fb 100644
--- a/sys/scsi/st.c
+++ b/sys/scsi/st.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: st.c,v 1.31 2002/06/04 00:09:08 deraadt Exp $ */
+/* $OpenBSD: st.c,v 1.32 2002/06/09 00:05:57 art Exp $ */
/* $NetBSD: st.c,v 1.71 1997/02/21 23:03:49 thorpej Exp $ */
/*
@@ -932,8 +932,9 @@ done:
* Correctly set the buf to indicate a completed xfer
*/
bp->b_resid = bp->b_bcount;
+ s = splbio();
biodone(bp);
- return;
+ splx(s);
}
/*
@@ -961,6 +962,9 @@ ststart(v)
int flags;
SC_DEBUG(sc_link, SDEV_DB2, ("ststart "));
+
+ splassert(IPL_BIO);
+
/*
* See if there is a buf to do and we are not already
* doing one