diff options
Diffstat (limited to 'sys')
-rw-r--r-- | sys/scsi/sd.c | 8 | ||||
-rw-r--r-- | sys/scsi/ss.c | 4 | ||||
-rw-r--r-- | sys/scsi/st.c | 8 |
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 |