diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2004-07-19 20:32:48 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2004-07-19 20:32:48 +0000 |
commit | 8c78e6d1a1edd4d34e7d588f2bab3eeef6d6d446 (patch) | |
tree | 8b2b80596fadfc700ba0d63927682241460c7ca9 /sys/arch/mvme88k/dev | |
parent | be7d3576f00707f6a47121ca72ef7b225bbd7b37 (diff) |
When we want to thaw all work queues we care about, do it correctly.
Diffstat (limited to 'sys/arch/mvme88k/dev')
-rw-r--r-- | sys/arch/mvme88k/dev/vs.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/sys/arch/mvme88k/dev/vs.c b/sys/arch/mvme88k/dev/vs.c index 58ba39632e3..c18c998a332 100644 --- a/sys/arch/mvme88k/dev/vs.c +++ b/sys/arch/mvme88k/dev/vs.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vs.c,v 1.44 2004/07/19 20:31:51 miod Exp $ */ +/* $OpenBSD: vs.c,v 1.45 2004/07/19 20:32:47 miod Exp $ */ /* * Copyright (c) 2004, Miodrag Vallat. @@ -91,6 +91,7 @@ struct cfdriver vs_cd = { int do_vspoll(struct vs_softc *, int, int); void thaw_queue(struct vs_softc *, int); +void thaw_all_queues(struct vs_softc *); M328_SG vs_alloc_scatter_gather(void); M328_SG vs_build_memory_structure(struct vs_softc *, struct scsi_xfer *, bus_addr_t); @@ -275,6 +276,15 @@ thaw_queue(struct vs_softc *sc, int target) } void +thaw_all_queues(struct vs_softc *sc) +{ + int i; + + for (i = 1; i <= 7; i++) + thaw_queue(sc, i); +} + +void vs_scsidone(struct vs_softc *sc, struct scsi_xfer *xs, int stat) { int tgt; @@ -289,7 +299,6 @@ vs_scsidone(struct vs_softc *sc, struct scsi_xfer *xs, int stat) tgt = vs_queue_number(xs->sc_link->target, sc->sc_pid); xs->flags |= ITSDONE; - /* thaw all work queues */ thaw_queue(sc, tgt); scsi_done(xs); } @@ -657,8 +666,7 @@ vs_reset(struct vs_softc *sc) CRB_CLR_DONE; } - /* thaw all work queues */ - thaw_queue(sc, 0xff); + thaw_all_queues(sc); splx(s); } @@ -807,7 +815,7 @@ vs_eintr(void *vsc) CRB_CLR_ER; CRB_CLR_DONE; - thaw_queue(sc, 0xff); + thaw_all_queues(sc); vs_clear_return_info(sc); splx(s); |