The branch main has been updated by adrian:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=dd9fac5e4f003de0275f82efa0c326d7ee154623

commit dd9fac5e4f003de0275f82efa0c326d7ee154623
Author:     Abdelkader Boudih <[email protected]>
AuthorDate: 2026-07-17 04:08:43 +0000
Commit:     Adrian Chadd <[email protected]>
CommitDate: 2026-07-17 04:08:45 +0000

    firewire: remove SPL calls
    
    SPL is a no-op on amd64. Real locking is already handled by fc_mtx and
    per-driver mutexes.
    
    Reviewed by:    imp
    Differential Revision:  https://reviews.freebsd.org/D58210
---
 sys/dev/firewire/firewire.c    | 21 ++-------------------
 sys/dev/firewire/firewirereg.h |  2 --
 sys/dev/firewire/fwdev.c       | 16 +++-------------
 sys/dev/firewire/fwohci.c      | 20 ++++----------------
 sys/dev/firewire/fwohci_pci.c  |  7 -------
 sys/dev/firewire/if_fwe.c      | 23 ++---------------------
 sys/dev/firewire/if_fwip.c     | 22 ++--------------------
 sys/dev/firewire/sbp_targ.c    | 10 +---------
 8 files changed, 14 insertions(+), 107 deletions(-)

diff --git a/sys/dev/firewire/firewire.c b/sys/dev/firewire/firewire.c
index c0a7c53cdd6c..3d41b4691276 100644
--- a/sys/dev/firewire/firewire.c
+++ b/sys/dev/firewire/firewire.c
@@ -982,9 +982,7 @@ fw_bindremove(struct firewire_comm *fc, struct fw_bind *fwb)
        struct fw_xfer *xfer, *next;
 #endif
        struct fw_bind *tfw;
-       int s;
 
-       s = splfw();
        FW_GLOCK(fc);
        STAILQ_FOREACH(tfw, &fc->binds, fclist)
                if (tfw == fwb) {
@@ -994,7 +992,6 @@ fw_bindremove(struct firewire_comm *fc, struct fw_bind *fwb)
 
        printf("%s: no such binding\n", __func__);
        FW_GUNLOCK(fc);
-       splx(s);
        return (1);
 found:
 #if 0
@@ -1007,7 +1004,6 @@ found:
 #endif
        FW_GUNLOCK(fc);
 
-       splx(s);
        return 0;
 }
 
@@ -1016,7 +1012,7 @@ fw_xferlist_add(struct fw_xferlist *q, struct malloc_type 
*type,
     int slen, int rlen, int n,
     struct firewire_comm *fc, void *sc, void (*hand)(struct fw_xfer *))
 {
-       int i, s;
+       int i;
        struct fw_xfer *xfer;
 
        for (i = 0; i < n; i++) {
@@ -1026,9 +1022,7 @@ fw_xferlist_add(struct fw_xferlist *q, struct malloc_type 
*type,
                xfer->fc = fc;
                xfer->sc = sc;
                xfer->hand = hand;
-               s = splfw();
                STAILQ_INSERT_TAIL(q, xfer, link);
-               splx(s);
        }
        return (n);
 }
@@ -1451,9 +1445,7 @@ fw_bus_probe(void *arg)
 {
        struct firewire_comm *fc;
        struct fw_device *fwdev;
-       int s;
 
-       s = splfw();
        fc = arg;
        fc->status = FWBUSEXPLORE;
 
@@ -1476,7 +1468,6 @@ fw_bus_probe(void *arg)
                                        "Dev ID: %08x%08x already invalid\n",
                                        __func__, fwdev->eui.hi, fwdev->eui.lo);
                }
-       splx(s);
 
        wakeup(fc);
 }
@@ -1737,7 +1728,7 @@ fw_find_self_id(struct firewire_comm *fc, int node)
 static void
 fw_explore(struct firewire_comm *fc)
 {
-       int node, err, s, i, todo, todo2, trys;
+       int node, err, i, todo, todo2, trys;
        char nodes[63];
        struct fw_device dfwdev;
        union fw_self_id *fwsid;
@@ -1773,7 +1764,6 @@ fw_explore(struct firewire_comm *fc)
                nodes[todo++] = node;
        }
 
-       s = splfw();
        for (trys = 0; todo > 0 && trys < 3; trys++) {
                todo2 = 0;
                for (i = 0; i < todo; i++) {
@@ -1788,7 +1778,6 @@ fw_explore(struct firewire_comm *fc)
                }
                todo = todo2;
        }
-       splx(s);
 }
 
 static void
@@ -2018,10 +2007,8 @@ fw_get_tlabel(struct firewire_comm *fc, struct fw_xfer 
*xfer)
 {
        u_int dst, new_tlabel;
        struct fw_xfer *txfer;
-       int s;
 
        dst = xfer->send.hdr.mode.hdr.dst & 0x3f;
-       s = splfw();
        mtx_lock(&fc->tlabel_lock);
        new_tlabel = (fc->last_tlabel[dst] + 1) & 0x3f;
        STAILQ_FOREACH(txfer, &fc->tlabels[new_tlabel], tlabel)
@@ -2031,7 +2018,6 @@ fw_get_tlabel(struct firewire_comm *fc, struct fw_xfer 
*xfer)
                fc->last_tlabel[dst] = new_tlabel;
                STAILQ_INSERT_TAIL(&fc->tlabels[new_tlabel], xfer, tlabel);
                mtx_unlock(&fc->tlabel_lock);
-               splx(s);
                xfer->tl = new_tlabel;
                xfer->send.hdr.mode.hdr.tlrt = new_tlabel << 2;
                if (firewire_debug > 1)
@@ -2039,7 +2025,6 @@ fw_get_tlabel(struct firewire_comm *fc, struct fw_xfer 
*xfer)
                return (new_tlabel);
        }
        mtx_unlock(&fc->tlabel_lock);
-       splx(s);
 
        if (firewire_debug > 1)
                printf("fw_get_tlabel: no free tlabel\n");
@@ -2272,10 +2257,8 @@ fw_rcv(struct fw_rcv_buf *rb)
                if (rb->xfer == NULL)
                        return;
                fw_rcv_copy(rb)
-               s = splfw();
                xferq->queued++;
                STAILQ_INSERT_TAIL(&xferq->q, rb->xfer, link);
-               splx(s);
                sc = device_get_softc(rb->fc->bdev);
                if (SEL_WAITING(&xferq->rsel))
                        selwakeuppri(&xferq->rsel, FWPRI);
diff --git a/sys/dev/firewire/firewirereg.h b/sys/dev/firewire/firewirereg.h
index a9f4f23e6a91..656b7e2a448e 100644
--- a/sys/dev/firewire/firewirereg.h
+++ b/sys/dev/firewire/firewirereg.h
@@ -42,8 +42,6 @@ typedef       struct thread fw_proc;
 #include <sys/mutex.h>
 #include <sys/taskqueue.h>
 
-#define        splfw splimp
-
 STAILQ_HEAD(fw_xferlist, fw_xfer);
 
 struct fw_device {
diff --git a/sys/dev/firewire/fwdev.c b/sys/dev/firewire/fwdev.c
index c01a3eab33da..18c2da6d2d94 100644
--- a/sys/dev/firewire/fwdev.c
+++ b/sys/dev/firewire/fwdev.c
@@ -266,7 +266,7 @@ fw_close(struct cdev *dev, int flags, int fmt, fw_proc *td)
 static int
 fw_read_async(struct fw_drv1 *d, struct uio *uio, int ioflag)
 {
-       int err = 0, s;
+       int err = 0;
        struct fw_xfer *xfer;
        struct fw_bind *fwb;
        struct fw_pkt *fp;
@@ -281,10 +281,8 @@ fw_read_async(struct fw_drv1 *d, struct uio *uio, int 
ioflag)
                return (err);
        }
 
-       s = splfw();
        STAILQ_REMOVE_HEAD(&d->rq, link);
        FW_GUNLOCK(xfer->fc);
-       splx(s);
        fp = &xfer->recv.hdr;
 #if 0 /* for GASP ?? */
        if (fc->irx_post != NULL)
@@ -316,7 +314,7 @@ fw_read(struct cdev *dev, struct uio *uio, int ioflag)
        struct fw_drv1 *d;
        struct fw_xferq *ir;
        struct firewire_comm *fc;
-       int err = 0, s, slept = 0;
+       int err = 0, slept = 0;
        struct fw_pkt *fp;
 
        if (DEV_FWMEM(dev))
@@ -338,9 +336,7 @@ readloop:
                /* iso bulkxfer */
                ir->stproc = STAILQ_FIRST(&ir->stvalid);
                if (ir->stproc != NULL) {
-                       s = splfw();
                        STAILQ_REMOVE_HEAD(&ir->stvalid, link);
-                       splx(s);
                        ir->queued = 0;
                }
        }
@@ -372,9 +368,7 @@ readloop:
                        fp->mode.stream.len + sizeof(uint32_t), uio);
                ir->queued++;
                if (ir->queued >= ir->bnpacket) {
-                       s = splfw();
                        STAILQ_INSERT_TAIL(&ir->stfree, ir->stproc, link);
-                       splx(s);
                        fc->irx_enable(fc, ir->dmach);
                        ir->stproc = NULL;
                }
@@ -447,7 +441,7 @@ static int
 fw_write(struct cdev *dev, struct uio *uio, int ioflag)
 {
        int err = 0;
-       int s, slept = 0;
+       int slept = 0;
        struct fw_drv1 *d;
        struct fw_pkt *fp;
        struct firewire_comm *fc;
@@ -471,9 +465,7 @@ isoloop:
        if (it->stproc == NULL) {
                it->stproc = STAILQ_FIRST(&it->stfree);
                if (it->stproc != NULL) {
-                       s = splfw();
                        STAILQ_REMOVE_HEAD(&it->stfree, link);
-                       splx(s);
                        it->queued = 0;
                } else if (slept == 0) {
                        slept = 1;
@@ -499,9 +491,7 @@ isoloop:
                                fp->mode.stream.len, uio);
        it->queued++;
        if (it->queued >= it->bnpacket) {
-               s = splfw();
                STAILQ_INSERT_TAIL(&it->stvalid, it->stproc, link);
-               splx(s);
                it->stproc = NULL;
                err = fc->itx_enable(fc, it->dmach);
        }
diff --git a/sys/dev/firewire/fwohci.c b/sys/dev/firewire/fwohci.c
index 245edb1f8fe4..d78312682e0c 100644
--- a/sys/dev/firewire/fwohci.c
+++ b/sys/dev/firewire/fwohci.c
@@ -1066,7 +1066,7 @@ fwohci_start_ats(struct firewire_comm *fc)
 void
 fwohci_txd(struct fwohci_softc *sc, struct fwohci_dbch *dbch)
 {
-       int s, ch, err = 0;
+       int ch, err = 0;
        struct fwohcidb_tr *tr;
        struct fwohcidb *db;
        struct fw_xfer *xfer;
@@ -1084,7 +1084,6 @@ fwohci_txd(struct fwohci_softc *sc, struct fwohci_dbch 
*dbch)
        } else {
                return;
        }
-       s = splfw();
        tr = dbch->bottom;
        packets = 0;
        fwdma_sync_multiseg_all(dbch->am, BUS_DMASYNC_POSTREAD);
@@ -1195,7 +1194,6 @@ out:
                fwohci_start(sc, dbch);
                FW_GUNLOCK(fc);
        }
-       splx(s);
 }
 
 static void
@@ -1511,7 +1509,7 @@ fwohci_itxbuf_enable(struct firewire_comm *fc, int dmach)
        struct fwohci_softc *sc = (struct fwohci_softc *)fc;
        int err = 0;
        struct fwohci_dbch *dbch;
-       int cycle_match, cycle_now, s, ldesc;
+       int cycle_match, cycle_now, ldesc;
        uint32_t stat;
        struct fw_bulkxfer *first, *chunk, *prev;
        struct fw_xferq *it;
@@ -1532,7 +1530,6 @@ fwohci_itxbuf_enable(struct firewire_comm *fc, int dmach)
                return err;
 
        ldesc = dbch->ndesc - 1;
-       s = splfw();
        FW_GLOCK(fc);
        prev = STAILQ_LAST(&it->stdma, fw_bulkxfer, link);
        while  ((chunk = STAILQ_FIRST(&it->stvalid)) != NULL) {
@@ -1563,7 +1560,6 @@ fwohci_itxbuf_enable(struct firewire_comm *fc, int dmach)
        FW_GUNLOCK(fc);
        fwdma_sync_multiseg_all(dbch->am, BUS_DMASYNC_PREWRITE);
        fwdma_sync_multiseg_all(dbch->am, BUS_DMASYNC_PREREAD);
-       splx(s);
        stat = OREAD(sc, OHCI_ITCTL(dmach));
        if (firewire_debug && (stat & OHCI_CNTL_CYCMATCH_S))
                printf("stat 0x%x\n", stat);
@@ -1627,7 +1623,7 @@ static int
 fwohci_irx_enable(struct firewire_comm *fc, int dmach)
 {
        struct fwohci_softc *sc = (struct fwohci_softc *)fc;
-       int err = 0, s, ldesc;
+       int err = 0, ldesc;
        unsigned short tag, ich;
        uint32_t stat;
        struct fwohci_dbch *dbch;
@@ -1661,7 +1657,6 @@ fwohci_irx_enable(struct firewire_comm *fc, int dmach)
        }
 
        ldesc = dbch->ndesc - 1;
-       s = splfw();
        if ((ir->flag & FWXFERQ_HANDLER) == 0)
                FW_GLOCK(fc);
        prev = STAILQ_LAST(&ir->stdma, fw_bulkxfer, link);
@@ -1695,7 +1690,6 @@ fwohci_irx_enable(struct firewire_comm *fc, int dmach)
                FW_GUNLOCK(fc);
        fwdma_sync_multiseg_all(dbch->am, BUS_DMASYNC_PREWRITE);
        fwdma_sync_multiseg_all(dbch->am, BUS_DMASYNC_PREREAD);
-       splx(s);
        stat = OREAD(sc, OHCI_IRCTL(dmach));
        if (stat & OHCI_CNTL_DMA_ACTIVE)
                return 0;
@@ -2180,11 +2174,10 @@ fwohci_tbuf_update(struct fwohci_softc *sc, int dmach)
        struct fw_bulkxfer *chunk;
        struct fw_xferq *it;
        uint32_t stat, count __unused;
-       int s, w=0, ldesc;
+       int w=0, ldesc;
 
        it = fc->it[dmach];
        ldesc = sc->it[dmach].ndesc - 1;
-       s = splfw(); /* unnecessary ? */
        FW_GLOCK(fc);
        fwdma_sync_multiseg_all(sc->it[dmach].am, BUS_DMASYNC_POSTREAD);
        if (firewire_debug)
@@ -2215,7 +2208,6 @@ fwohci_tbuf_update(struct fwohci_softc *sc, int dmach)
                w++;
        }
        FW_GUNLOCK(fc);
-       splx(s);
        if (w)
                wakeup(it);
 }
@@ -2804,7 +2796,6 @@ fwohci_arcv(struct fwohci_softc *sc, struct fwohci_dbch 
*dbch, int count)
        int pcnt;
 #endif
         int len, plen, hlen, offset;
-       int s;
        caddr_t buf;
        int resCount;
 
@@ -2816,7 +2807,6 @@ fwohci_arcv(struct fwohci_softc *sc, struct fwohci_dbch 
*dbch, int count)
                return;
        }
 
-       s = splfw();
        db_tr = dbch->top;
 #ifdef COUNT_PACKETS
        pcnt = 0;
@@ -3022,7 +3012,6 @@ out:
        if (pcnt < 1)
                printf("fwohci_arcv: no packets\n");
 #endif
-       splx(s);
        return;
 
 err:
@@ -3042,5 +3031,4 @@ err:
        dbch->top = db_tr;
        dbch->buf_offset = dbch->xferq.psize - resCount;
        OWRITE(sc, OHCI_DMACTL(off), OHCI_CNTL_DMA_WAKE);
-       splx(s);
 }
diff --git a/sys/dev/firewire/fwohci_pci.c b/sys/dev/firewire/fwohci_pci.c
index a6f9f50701f0..4abebb3b9468 100644
--- a/sys/dev/firewire/fwohci_pci.c
+++ b/sys/dev/firewire/fwohci_pci.c
@@ -324,9 +324,6 @@ static int
 fwohci_pci_detach(device_t self)
 {
        fwohci_softc_t *sc = device_get_softc(self);
-       int s;
-
-       s = splfw();
 
        if (sc->bsr)
                fwohci_stop(sc, self);
@@ -360,7 +357,6 @@ fwohci_pci_detach(device_t self)
 
        fwohci_detach(sc, self);
        mtx_destroy(FW_GMTX(&sc->fc));
-       splx(s);
 
        return 0;
 }
@@ -428,11 +424,8 @@ fwohci_pci_add_child(device_t dev, u_int order, const char 
*name, int unit)
         * interrupt is disabled during the boot process.
         */
        if (cold) {
-               int s;
                DELAY(250); /* 2 cycles */
-               s = splfw();
                fwohci_poll(&sc->fc, 0, -1);
-               splx(s);
        }
 
        return (child);
diff --git a/sys/dev/firewire/if_fwe.c b/sys/dev/firewire/if_fwe.c
index ed288cab02c7..763950e59bac 100644
--- a/sys/dev/firewire/if_fwe.c
+++ b/sys/dev/firewire/if_fwe.c
@@ -139,7 +139,7 @@ fwe_attach(device_t dev)
 {
        struct fwe_softc *fwe;
        if_t ifp;
-       int unit, s;
+       int unit;
        u_char eaddr[6];
        struct fw_eui64 *eui;
 
@@ -190,9 +190,7 @@ fwe_attach(device_t dev)
        if_setflags(ifp, (IFF_BROADCAST|IFF_SIMPLEX|IFF_MULTICAST));
        if_setsendqlen(ifp, TX_MAX_QUEUE);
 
-       s = splimp();
        ether_ifattach(ifp, eaddr);
-       splx(s);
 
         /* Tell the upper layer(s) we support long frames. */
        if_setifheaderlen(ifp, sizeof(struct ether_vlan_header));
@@ -242,7 +240,6 @@ fwe_detach(device_t dev)
 {
        struct fwe_softc *fwe;
        if_t ifp;
-       int s;
 
        fwe = device_get_softc(dev);
        ifp = fwe->eth_softc.ifp;
@@ -251,13 +248,11 @@ fwe_detach(device_t dev)
        if (if_getcapenable(ifp) & IFCAP_POLLING)
                ether_poll_deregister(ifp);
 #endif
-       s = splimp();
 
        fwe_stop(fwe);
        ether_ifdetach(ifp);
        if_free(ifp);
 
-       splx(s);
        mtx_destroy(&fwe->mtx);
        return 0;
 }
@@ -336,11 +331,10 @@ fwe_ioctl(if_t ifp, u_long cmd, caddr_t data)
 {
        struct fwe_softc *fwe = ((struct fwe_eth_softc *)if_getsoftc(ifp))->fwe;
        struct ifstat *ifs = NULL;
-       int s, error;
+       int error;
 
        switch (cmd) {
                case SIOCSIFFLAGS:
-                       s = splimp();
                        if (if_getflags(ifp) & IFF_UP) {
                                if (!(if_getdrvflags(ifp) & IFF_DRV_RUNNING))
                                        fwe_init(&fwe->eth_softc);
@@ -350,18 +344,15 @@ fwe_ioctl(if_t ifp, u_long cmd, caddr_t data)
                        }
                        /* XXX keep promiscoud mode */
                        if_setflagbits(ifp, IFF_PROMISC, 0);
-                       splx(s);
                        break;
                case SIOCADDMULTI:
                case SIOCDELMULTI:
                        break;
 
                case SIOCGIFSTATUS:
-                       s = splimp();
                        ifs = (struct ifstat *)data;
                        snprintf(ifs->ascii, sizeof(ifs->ascii),
                            "\tch %d dma %d\n", fwe->stream_ch, fwe->dma_ch);
-                       splx(s);
                        break;
                case SIOCSIFCAP:
 #ifdef DEVICE_POLLING
@@ -376,9 +367,7 @@ fwe_ioctl(if_t ifp, u_long cmd, caddr_t data)
 #endif /* DEVICE_POLLING */
                        break;
                default:
-                       s = splimp();
                        error = ether_ioctl(ifp, cmd, data);
-                       splx(s);
                        return (error);
        }
 
@@ -390,7 +379,6 @@ fwe_output_callback(struct fw_xfer *xfer)
 {
        struct fwe_softc *fwe;
        if_t ifp;
-       int s;
 
        fwe = (struct fwe_softc *)xfer->sc;
        ifp = fwe->eth_softc.ifp;
@@ -401,11 +389,9 @@ fwe_output_callback(struct fw_xfer *xfer)
        m_freem(xfer->mbuf);
        fw_xfer_unload(xfer);
 
-       s = splimp();
        FWE_LOCK(fwe);
        STAILQ_INSERT_TAIL(&fwe->xferlist, xfer, link);
        FWE_UNLOCK(fwe);
-       splx(s);
 
        /* for queue full */
        if (!if_sendq_empty(ifp))
@@ -416,28 +402,23 @@ static void
 fwe_start(if_t ifp)
 {
        struct fwe_softc *fwe = ((struct fwe_eth_softc *)if_getsoftc(ifp))->fwe;
-       int s;
 
        FWEDEBUG(ifp, "starting\n");
 
        if (fwe->dma_ch < 0) {
                FWEDEBUG(ifp, "not ready\n");
 
-               s = splimp();
                fw_net_drain_sendq(ifp);
-               splx(s);
 
                return;
        }
 
-       s = splimp();
        if_setdrvflagbits(ifp, IFF_DRV_OACTIVE, 0);
 
        if (!if_sendq_empty(ifp))
                fwe_as_output(fwe, ifp);
 
        if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
-       splx(s);
 }
 
 #define HDR_LEN 4
diff --git a/sys/dev/firewire/if_fwip.c b/sys/dev/firewire/if_fwip.c
index c3c6c595c775..8ac139361a89 100644
--- a/sys/dev/firewire/if_fwip.c
+++ b/sys/dev/firewire/if_fwip.c
@@ -150,7 +150,7 @@ fwip_attach(device_t dev)
 {
        struct fwip_softc *fwip;
        if_t ifp;
-       int unit, s;
+       int unit;
        struct fw_hwaddr *hwaddr;
 
        fwip = ((struct fwip_softc *)device_get_softc(dev));
@@ -195,9 +195,7 @@ fwip_attach(device_t dev)
        if_setcapabilitiesbit(ifp, IFCAP_POLLING, 0);
 #endif
 
-       s = splimp();
        firewire_ifattach(ifp, hwaddr);
-       splx(s);
 
        FWIPDEBUG(ifp, "interface created\n");
        return (0);
@@ -244,7 +242,6 @@ fwip_detach(device_t dev)
 {
        struct fwip_softc *fwip;
        if_t ifp;
-       int s;
 
        fwip = (struct fwip_softc *)device_get_softc(dev);
        ifp = fwip->fw_softc.fwip_ifp;
@@ -254,14 +251,11 @@ fwip_detach(device_t dev)
                ether_poll_deregister(ifp);
 #endif
 
-       s = splimp();
-
        fwip_stop(fwip);
        firewire_ifdetach(ifp);
        if_free(ifp);
        mtx_destroy(&fwip->mtx);
 
-       splx(s);
        return 0;
 }
 
@@ -357,11 +351,10 @@ static int
 fwip_ioctl(if_t ifp, u_long cmd, caddr_t data)
 {
        struct fwip_softc *fwip = ((struct fwip_eth_softc 
*)if_getsoftc(ifp))->fwip;
-       int s, error;
+       int error;
 
        switch (cmd) {
        case SIOCSIFFLAGS:
-               s = splimp();
                if (if_getflags(ifp) & IFF_UP) {
                        if (!(if_getdrvflags(ifp) & IFF_DRV_RUNNING))
                                fwip_init(&fwip->fw_softc);
@@ -369,7 +362,6 @@ fwip_ioctl(if_t ifp, u_long cmd, caddr_t data)
                        if (if_getdrvflags(ifp) & IFF_DRV_RUNNING)
                                fwip_stop(fwip);
                }
-               splx(s);
                break;
        case SIOCADDMULTI:
        case SIOCDELMULTI:
@@ -387,9 +379,7 @@ fwip_ioctl(if_t ifp, u_long cmd, caddr_t data)
 #endif /* DEVICE_POLLING */
                break;
        default:
-               s = splimp();
                error = firewire_ioctl(ifp, cmd, data);
-               splx(s);
                return (error);
        }
 
@@ -432,7 +422,6 @@ fwip_output_callback(struct fw_xfer *xfer)
 {
        struct fwip_softc *fwip;
        if_t ifp;
-       int s;
 
        fwip = (struct fwip_softc *)xfer->sc;
        ifp = fwip->fw_softc.fwip_ifp;
@@ -443,11 +432,9 @@ fwip_output_callback(struct fw_xfer *xfer)
        m_freem(xfer->mbuf);
        fw_xfer_unload(xfer);
 
-       s = splimp();
        FWIP_LOCK(fwip);
        STAILQ_INSERT_TAIL(&fwip->xferlist, xfer, link);
        FWIP_UNLOCK(fwip);
-       splx(s);
 
        /* for queue full */
        if (!if_sendq_empty(ifp)) {
@@ -459,28 +446,23 @@ static void
 fwip_start(if_t ifp)
 {
        struct fwip_softc *fwip = ((struct fwip_eth_softc 
*)if_getsoftc(ifp))->fwip;
-       int s;
 
        FWIPDEBUG(ifp, "starting\n");
 
        if (fwip->dma_ch < 0) {
                FWIPDEBUG(ifp, "not ready\n");
 
-               s = splimp();
                fw_net_drain_sendq(ifp);
-               splx(s);
 
                return;
        }
 
-       s = splimp();
        if_setdrvflagbits(ifp, IFF_DRV_OACTIVE, 0);
 
        if (!if_sendq_empty(ifp))
                fwip_async_output(fwip, ifp);
 
        if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
-       splx(s);
 }
 
 /* Async. stream output */
diff --git a/sys/dev/firewire/sbp_targ.c b/sys/dev/firewire/sbp_targ.c
index ba40d2807ae8..cd4b3eb3b537 100644
--- a/sys/dev/firewire/sbp_targ.c
+++ b/sys/dev/firewire/sbp_targ.c
@@ -1402,11 +1402,8 @@ sbp_targ_action1(struct cam_sim *sim, union ccb *ccb)
 static void
 sbp_targ_action(struct cam_sim *sim, union ccb *ccb)
 {
-       int s;
 
-       s = splfw();
        sbp_targ_action1(sim, ccb);
-       splx(s);
 }
 
 static void
@@ -1784,7 +1781,6 @@ static void
 sbp_targ_resp_callback(struct fw_xfer *xfer)
 {
        struct sbp_targ_softc *sc;
-       int s;
 
        if (debug)
                printf("%s: xfer=%p\n", __func__, xfer);
@@ -1792,9 +1788,7 @@ sbp_targ_resp_callback(struct fw_xfer *xfer)
        fw_xfer_unload(xfer);
        xfer->recv.pay_len = SBP_TARG_RECV_LEN;
        xfer->hand = sbp_targ_recv;
-       s = splfw();
        STAILQ_INSERT_TAIL(&sc->fwb.xferlist, xfer, link);
-       splx(s);
 }
 
 static int
@@ -1901,10 +1895,9 @@ sbp_targ_recv(struct fw_xfer *xfer)
        struct fw_pkt *fp, *sfp;
        struct fw_device *fwdev;
        uint32_t lo;
-       int s, rtcode;
+       int rtcode;
        struct sbp_targ_softc *sc;
 
-       s = splfw();
        sc = (struct sbp_targ_softc *)xfer->sc;
        fp = &xfer->recv.hdr;
        fwdev = fw_noderesolve_nodeid(sc->fd.fc, fp->mode.wreqb.src & 0x3f);
@@ -1937,7 +1930,6 @@ done:
        sfp->mode.wres.pri = 0;
 
        fw_asyreq(xfer->fc, -1, xfer);
-       splx(s);
 }
 
 static int

Reply via email to