Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/sbus Call bus_dma_[un]load() at splbio.



details:   https://anonhg.NetBSD.org/src/rev/9f9ba2b13bef
branches:  trunk
changeset: 467318:9f9ba2b13bef
user:      pk <pk%NetBSD.org@localhost>
date:      Tue Mar 23 00:38:15 1999 +0000

description:
Call bus_dma_[un]load() at splbio.

diffstat:

 sys/dev/sbus/isp_sbus.c |  8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diffs (48 lines):

diff -r 95339d1c74f3 -r 9f9ba2b13bef sys/dev/sbus/isp_sbus.c
--- a/sys/dev/sbus/isp_sbus.c   Tue Mar 23 00:33:32 1999 +0000
+++ b/sys/dev/sbus/isp_sbus.c   Tue Mar 23 00:38:15 1999 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: isp_sbus.c,v 1.8 1999/03/17 06:17:16 mjacob Exp $ */
+/* $NetBSD: isp_sbus.c,v 1.9 1999/03/23 00:38:15 pk Exp $ */
 /* release_03_16_99 */
 /*
  * SBus specific probe and attach routines for Qlogic ISP SCSI adapters.
@@ -312,6 +312,7 @@
 {
        struct isp_sbussoftc *sbc = (struct isp_sbussoftc *) isp;
        bus_dmamap_t dmamap;
+       int s;
        int dosleep = (xs->flags & SCSI_NOSLEEP) != 0;
 
        if (xs->datalen == 0) {
@@ -330,12 +331,14 @@
                panic("%s: dma map already allocated\n", isp->isp_name);
                /* NOTREACHED */
        }
+       s = splbio();
        if (bus_dmamap_load(sbc->sbus_dmatag, dmamap,
                            xs->data, xs->datalen, NULL,
                            dosleep ? BUS_DMA_WAITOK : BUS_DMA_NOWAIT) != 0) {
                XS_SETERR(xs, HBA_BOTCH);
                return (CMD_COMPLETE);
        }
+       splx(s);
        bus_dmamap_sync(sbc->sbus_dmatag, dmamap,
                        dmamap->dm_segs[0].ds_addr, xs->datalen,
                        (xs->flags & SCSI_DATA_IN)
@@ -361,6 +364,7 @@
 {
        struct isp_sbussoftc *sbc = (struct isp_sbussoftc *) isp;
        bus_dmamap_t dmamap;
+       int s;
 
        if (handle >= RQUEST_QUEUE_LEN) {
                panic("%s: bad handle (%d) in isp_sbus_dmateardown\n",
@@ -378,5 +382,7 @@
                        (xs->flags & SCSI_DATA_IN)
                                ? BUS_DMASYNC_POSTREAD
                                : BUS_DMASYNC_POSTWRITE);
+       s = splbio();
        bus_dmamap_unload(sbc->sbus_dmatag, dmamap);
+       splx(s);
 }



Home | Main Index | Thread Index | Old Index