summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Gwynne <dlg@cvs.openbsd.org>2010-01-12 23:33:58 +0000
committerDavid Gwynne <dlg@cvs.openbsd.org>2010-01-12 23:33:58 +0000
commit17dabbf332d06a8ff557075a4ef65f57c8e92390 (patch)
tree834b999fe2e031672b3a6a75ff9e5e70dc50dead
parent1927861651d7ea620060a826a41e5dd4481324e2 (diff)
bring sd.c r1.180 over to the other drivers now using the antisemaphore,
ie, dont clear the WAITING flag when restarting the xxstart loops.
-rw-r--r--sys/scsi/cd.c4
-rw-r--r--sys/scsi/ss.c4
-rw-r--r--sys/scsi/st.c4
3 files changed, 6 insertions, 6 deletions
diff --git a/sys/scsi/cd.c b/sys/scsi/cd.c
index 918e3f77f05..b2dc1ad01d6 100644
--- a/sys/scsi/cd.c
+++ b/sys/scsi/cd.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cd.c,v 1.160 2010/01/11 08:56:17 krw Exp $ */
+/* $OpenBSD: cd.c,v 1.161 2010/01/12 23:33:57 dlg Exp $ */
/* $NetBSD: cd.c,v 1.100 1997/04/02 02:29:30 mycroft Exp $ */
/*
@@ -619,8 +619,8 @@ cdstart(void *v)
return;
}
mtx_leave(&sc->sc_start_mtx);
-restart:
CLR(sc->sc_flags, CDF_WAITING);
+restart:
while (!ISSET(sc->sc_flags, CDF_WAITING) &&
(bp = cd_buf_dequeue(sc)) != NULL) {
diff --git a/sys/scsi/ss.c b/sys/scsi/ss.c
index 60095431053..17b28bde3a3 100644
--- a/sys/scsi/ss.c
+++ b/sys/scsi/ss.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ss.c,v 1.67 2010/01/11 08:56:17 krw Exp $ */
+/* $OpenBSD: ss.c,v 1.68 2010/01/12 23:33:57 dlg Exp $ */
/* $NetBSD: ss.c,v 1.10 1996/05/05 19:52:55 christos Exp $ */
/*
@@ -680,8 +680,8 @@ ssstart(v)
return;
}
mtx_leave(&ss->sc_start_mtx);
-restart:
CLR(ss->flags, SSF_WAITING);
+restart:
while (!ISSET(ss->flags, SSF_WAITING) &&
(bp = ss_buf_dequeue(ss)) != NULL) {
diff --git a/sys/scsi/st.c b/sys/scsi/st.c
index 9aca15a5a79..58756f1f988 100644
--- a/sys/scsi/st.c
+++ b/sys/scsi/st.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: st.c,v 1.90 2010/01/11 08:56:17 krw Exp $ */
+/* $OpenBSD: st.c,v 1.91 2010/01/12 23:33:57 dlg Exp $ */
/* $NetBSD: st.c,v 1.71 1997/02/21 23:03:49 thorpej Exp $ */
/*
@@ -993,8 +993,8 @@ ststart(void *v)
return;
}
mtx_leave(&st->sc_start_mtx);
-restart:
CLR(st->flags, ST_WAITING);
+restart:
while (!ISSET(st->flags, ST_WAITING) &&
(bp = st_buf_dequeue(st)) != NULL) {