diff options
author | David Gwynne <dlg@cvs.openbsd.org> | 2010-01-12 23:33:58 +0000 |
---|---|---|
committer | David Gwynne <dlg@cvs.openbsd.org> | 2010-01-12 23:33:58 +0000 |
commit | 17dabbf332d06a8ff557075a4ef65f57c8e92390 (patch) | |
tree | 834b999fe2e031672b3a6a75ff9e5e70dc50dead | |
parent | 1927861651d7ea620060a826a41e5dd4481324e2 (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.c | 4 | ||||
-rw-r--r-- | sys/scsi/ss.c | 4 | ||||
-rw-r--r-- | sys/scsi/st.c | 4 |
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) { |