Remove spl*() in src/sys/dev/netif/{ste,ti,tl,tx,txp,vr,vx,wb,wl,xe}
authorMax Okumoto <okumoto@dragonflybsd.org>
Mon, 6 Jun 2005 23:12:07 +0000 (23:12 +0000)
committerMax Okumoto <okumoto@dragonflybsd.org>
Mon, 6 Jun 2005 23:12:07 +0000 (23:12 +0000)
and replace them with critical sections.

sys/dev/netif/ste/if_ste.c
sys/dev/netif/ti/if_ti.c
sys/dev/netif/tl/if_tl.c
sys/dev/netif/tx/if_tx.c
sys/dev/netif/txp/if_txp.c
sys/dev/netif/vr/if_vr.c
sys/dev/netif/vx/if_vx.c
sys/dev/netif/wb/if_wb.c
sys/dev/netif/wl/if_wl.c
sys/dev/netif/xe/if_xe.c

index 2bd69df..9274b93 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/pci/if_ste.c,v 1.14.2.9 2003/02/05 22:03:57 mbr Exp $
- * $DragonFly: src/sys/dev/netif/ste/if_ste.c,v 1.19 2005/05/27 15:36:10 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/ste/if_ste.c,v 1.20 2005/06/06 23:12:07 okumoto Exp $
  */
 
 #include <sys/param.h>
@@ -40,6 +40,7 @@
 #include <sys/malloc.h>
 #include <sys/kernel.h>
 #include <sys/socket.h>
+#include <sys/thread2.h>
 
 #include <net/if.h>
 #include <net/ifq_var.h>
@@ -240,9 +241,9 @@ static int ste_mii_readreg(sc, frame)
        struct ste_mii_frame    *frame;
        
 {
-       int                     i, ack, s;
+       int                     i, ack;
 
-       s = splimp();
+       crit_enter();
 
        /*
         * Set up frame for RX.
@@ -317,7 +318,7 @@ fail:
        MII_SET(STE_PHYCTL_MCLK);
        DELAY(1);
 
-       splx(s);
+       crit_exit();
 
        if (ack)
                return(1);
@@ -332,9 +333,8 @@ static int ste_mii_writereg(sc, frame)
        struct ste_mii_frame    *frame;
        
 {
-       int                     s;
 
-       s = splimp();
+       crit_enter();
        /*
         * Set up frame for TX.
         */
@@ -368,7 +368,7 @@ static int ste_mii_writereg(sc, frame)
         */
        MII_CLR(STE_PHYCTL_MDIR);
 
-       splx(s);
+       crit_exit();
 
        return(0);
 }
@@ -833,9 +833,8 @@ static void ste_stats_update(xsc)
        struct ste_softc        *sc;
        struct ifnet            *ifp;
        struct mii_data         *mii;
-       int                     s;
 
-       s = splimp();
+       crit_enter();
 
        sc = xsc;
        ifp = &sc->arpcom.ac_if;
@@ -861,7 +860,7 @@ static void ste_stats_update(xsc)
        }
 
        callout_reset(&sc->ste_stat_timer, hz, ste_stats_update, sc);
-       splx(s);
+       crit_exit();
 
        return;
 }
@@ -897,13 +896,12 @@ static int ste_probe(dev)
 static int ste_attach(dev)
        device_t                dev;
 {
-       int                     s;
        u_int32_t               command;
        struct ste_softc        *sc;
        struct ifnet            *ifp;
        int                     unit, error = 0, rid;
 
-       s = splimp();
+       crit_enter();
 
        sc = device_get_softc(dev);
        unit = device_get_unit(dev);
@@ -1077,7 +1075,7 @@ static int ste_attach(dev)
         ifp->if_data.ifi_hdrlen = sizeof(struct ether_vlan_header);
  
 fail:
-       splx(s);
+       crit_exit();
        return(error);
 }
 
@@ -1086,9 +1084,8 @@ static int ste_detach(dev)
 {
        struct ste_softc        *sc;
        struct ifnet            *ifp;
-       int                     s;
 
-       s = splimp();
+       crit_enter();
 
        sc = device_get_softc(dev);
        ifp = &sc->arpcom.ac_if;
@@ -1105,7 +1102,7 @@ static int ste_detach(dev)
 
        contigfree(sc->ste_ldata, sizeof(struct ste_list_data), M_DEVBUF);
 
-       splx(s);
+       crit_exit();
 
        return(0);
 }
@@ -1215,11 +1212,11 @@ static void ste_init(xsc)
        void                    *xsc;
 {
        struct ste_softc        *sc;
-       int                     i, s;
+       int                     i;
        struct ifnet            *ifp;
        struct mii_data         *mii;
 
-       s = splimp();
+       crit_enter();
 
        sc = xsc;
        ifp = &sc->arpcom.ac_if;
@@ -1237,7 +1234,7 @@ static void ste_init(xsc)
                printf("ste%d: initialization failed: no "
                    "memory for RX buffers\n", sc->ste_unit);
                ste_stop(sc);
-               splx(s);
+               crit_exit();
                return;
        }
 
@@ -1316,7 +1313,7 @@ static void ste_init(xsc)
        ifp->if_flags |= IFF_RUNNING;
        ifp->if_flags &= ~IFF_OACTIVE;
 
-       splx(s);
+       crit_exit();
 
        callout_reset(&sc->ste_stat_timer, hz, ste_stats_update, sc);
 
@@ -1403,9 +1400,9 @@ static int ste_ioctl(ifp, command, data, cr)
        struct ste_softc        *sc;
        struct ifreq            *ifr;
        struct mii_data         *mii;
-       int                     error = 0, s;
+       int                     error = 0;
 
-       s = splimp();
+       crit_enter();
 
        sc = ifp->if_softc;
        ifr = (struct ifreq *)data;
@@ -1450,7 +1447,7 @@ static int ste_ioctl(ifp, command, data, cr)
                break;
        }
 
-       splx(s);
+       crit_exit();
 
        return(error);
 }
index 8da22df..4856f0d 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/pci/if_ti.c,v 1.25.2.14 2002/02/15 04:20:20 silby Exp $
- * $DragonFly: src/sys/dev/netif/ti/if_ti.c,v 1.25 2005/05/31 14:11:43 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/ti/if_ti.c,v 1.26 2005/06/06 23:12:07 okumoto Exp $
  */
 
 /*
@@ -87,6 +87,7 @@
 #include <sys/kernel.h>
 #include <sys/socket.h>
 #include <sys/queue.h>
+#include <sys/thread2.h>
 
 #include <net/if.h>
 #include <net/ifq_var.h>
@@ -1398,10 +1399,10 @@ ti_attach(device_t dev)
 {
        struct ti_softc *sc;
        struct ifnet *ifp;
-       int error = 0, rid, s, unit;
+       int error = 0, rid, unit;
        uint32_t command;
 
-       s = splimp();
+       crit_enter();
 
        sc = device_get_softc(dev);
        unit = device_get_unit(dev);
@@ -1603,7 +1604,7 @@ ti_attach(device_t dev)
        ether_ifattach(ifp, sc->arpcom.ac_enaddr);
 
 fail:
-       splx(s);
+       crit_exit();
 
        return(error);
 }
@@ -1613,9 +1614,8 @@ ti_detach(device_t dev)
 {
        struct ti_softc *sc = device_get_softc(dev);
        struct ifnet *ifp = &sc->arpcom.ac_if;
-       int s;
 
-       s = splimp();
+       crit_enter();
 
        ether_ifdetach(ifp);
        ti_stop(sc);
@@ -1628,7 +1628,7 @@ ti_detach(device_t dev)
        contigfree(sc->ti_rdata, sizeof(struct ti_ring_data), M_DEVBUF);
        ifmedia_removeall(&sc->ifmedia);
 
-       splx(s);
+       crit_exit();
 
        return(0);
 }
@@ -1993,9 +1993,8 @@ static void
 ti_init(void *xsc)
 {
        struct ti_softc *sc = xsc;
-        int s;
 
-       s = splimp();
+       crit_enter();
 
        /* Cancel pending I/O and flush buffers. */
        ti_stop(sc);
@@ -2003,11 +2002,11 @@ ti_init(void *xsc)
        /* Init the gen info block, ring control blocks and firmware. */
        if (ti_gibinit(sc)) {
                printf("ti%d: initialization failure\n", sc->ti_unit);
-               splx(s);
+               crit_exit();
                return;
        }
 
-       splx(s);
+       crit_exit();
 }
 
 static void
@@ -2199,9 +2198,9 @@ ti_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr)
        struct ti_softc *sc = ifp->if_softc;
        struct ifreq *ifr = (struct ifreq *) data;
        struct ti_cmd_desc cmd;
-       int error = 0, mask, s;
+       int error = 0, mask;
 
-       s = splimp();
+       crit_enter();
 
        switch(command) {
        case SIOCSIFMTU:
@@ -2268,7 +2267,7 @@ ti_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr)
                break;
        }
 
-       splx(s);
+       crit_exit();
 
        return(error);
 }
index 3c61af6..44d9153 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/pci/if_tl.c,v 1.51.2.5 2001/12/16 15:46:08 luigi Exp $
- * $DragonFly: src/sys/dev/netif/tl/if_tl.c,v 1.20 2005/05/27 15:36:10 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/tl/if_tl.c,v 1.21 2005/06/06 23:12:07 okumoto Exp $
  */
 
 /*
 #include <sys/malloc.h>
 #include <sys/kernel.h>
 #include <sys/socket.h>
+#include <sys/thread2.h>
 
 #include <net/if.h>
 #include <net/ifq_var.h>
@@ -645,10 +646,10 @@ static int tl_mii_readreg(sc, frame)
        struct tl_mii_frame     *frame;
        
 {
-       int                     i, ack, s;
+       int                     i, ack;
        int                     minten = 0;
 
-       s = splimp();
+       crit_enter();
 
        tl_mii_sync(sc);
 
@@ -728,7 +729,7 @@ fail:
                tl_dio_setbit(sc, TL_NETSIO, TL_SIO_MINTEN);
        }
 
-       splx(s);
+       crit_exit();
 
        if (ack)
                return(1);
@@ -740,12 +741,11 @@ static int tl_mii_writereg(sc, frame)
        struct tl_mii_frame     *frame;
        
 {
-       int                     s;
        int                     minten;
 
        tl_mii_sync(sc);
 
-       s = splimp();
+       crit_enter();
        /*
         * Set up frame for TX.
         */
@@ -786,7 +786,7 @@ static int tl_mii_writereg(sc, frame)
        if (minten)
                tl_dio_setbit(sc, TL_NETSIO, TL_SIO_MINTEN);
 
-       splx(s);
+       crit_exit();
 
        return(0);
 }
@@ -1102,7 +1102,7 @@ static int tl_probe(dev)
 static int tl_attach(dev)
        device_t                dev;
 {
-       int                     s, i;
+       int                     i;
        u_int32_t               command;
        u_int16_t               did, vid;
        struct tl_type          *t;
@@ -1110,7 +1110,7 @@ static int tl_attach(dev)
        struct tl_softc         *sc;
        int                     unit, error = 0, rid;
 
-       s = splimp();
+       crit_enter();
 
        vid = pci_get_vendor(dev);
        did = pci_get_device(dev);
@@ -1330,7 +1330,7 @@ static int tl_attach(dev)
        ether_ifattach(ifp, sc->arpcom.ac_enaddr);
 
 fail:
-       splx(s);
+       crit_exit();
        return(error);
 }
 
@@ -1339,9 +1339,8 @@ static int tl_detach(dev)
 {
        struct tl_softc         *sc;
        struct ifnet            *ifp;
-       int                     s;
 
-       s = splimp();
+       crit_enter();
 
        sc = device_get_softc(dev);
        ifp = &sc->arpcom.ac_if;
@@ -1360,7 +1359,7 @@ static int tl_detach(dev)
        bus_release_resource(dev, SYS_RES_IRQ, 0, sc->tl_irq);
        bus_release_resource(dev, TL_RES, TL_RID, sc->tl_res);
 
-       splx(s);
+       crit_exit();
 
        return(0);
 }
@@ -1768,9 +1767,8 @@ static void tl_stats_update(xsc)
        struct tl_stats         tl_stats;
        struct mii_data         *mii;
        u_int32_t               *p;
-       int                     s;
 
-       s = splimp();
+       crit_enter();
 
        bzero((char *)&tl_stats, sizeof(struct tl_stats));
 
@@ -1815,7 +1813,7 @@ static void tl_stats_update(xsc)
                mii_tick(mii);
        }
 
-       splx(s);
+       crit_exit();
 
        return;
 }
@@ -2009,10 +2007,9 @@ static void tl_init(xsc)
 {
        struct tl_softc         *sc = xsc;
        struct ifnet            *ifp = &sc->arpcom.ac_if;
-        int                    s;
        struct mii_data         *mii;
 
-       s = splimp();
+       crit_enter();
 
        ifp = &sc->arpcom.ac_if;
 
@@ -2083,7 +2080,7 @@ static void tl_init(xsc)
        ifp->if_flags |= IFF_RUNNING;
        ifp->if_flags &= ~IFF_OACTIVE;
 
-       (void)splx(s);
+       crit_exit();
 
        /* Start the stats update counter */
        callout_reset(&sc->tl_stat_timer, hz, tl_stats_update, sc);
@@ -2152,9 +2149,9 @@ static int tl_ioctl(ifp, command, data, cr)
 {
        struct tl_softc         *sc = ifp->if_softc;
        struct ifreq            *ifr = (struct ifreq *) data;
-       int                     s, error = 0;
+       int                     error = 0;
 
-       s = splimp();
+       crit_enter();
 
        switch(command) {
        case SIOCSIFFLAGS:
@@ -2200,7 +2197,7 @@ static int tl_ioctl(ifp, command, data, cr)
                break;
        }
 
-       (void)splx(s);
+       crit_exit();
 
        return(error);
 }
index ce1e689..9805821 100644 (file)
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/tx/if_tx.c,v 1.61.2.1 2002/10/29 01:43:49 semenu Exp $
- * $DragonFly: src/sys/dev/netif/tx/if_tx.c,v 1.19 2005/05/27 15:36:10 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/tx/if_tx.c,v 1.20 2005/06/06 23:12:07 okumoto Exp $
  */
 
 /*
@@ -47,6 +47,7 @@
 #include <sys/kernel.h>
 #include <sys/socket.h>
 #include <sys/queue.h>
+#include <sys/thread2.h>
 
 #include <net/if.h>
 #include <net/ifq_var.h>
@@ -215,9 +216,9 @@ epic_attach(dev)
        epic_softc_t *sc;
        u_int32_t command;
        int unit, error;
-       int i, s, rid, tmp;
+       int i, rid, tmp;
 
-       s = splimp ();
+       crit_enter();
 
        sc = device_get_softc(dev);
        unit = device_get_unit(dev);
@@ -334,7 +335,7 @@ epic_attach(dev)
        ifp->if_hdrlen = sizeof(struct ether_vlan_header);
 
 fail:
-       splx(s);
+       crit_exit();
 
        return(error);
 }
@@ -348,9 +349,8 @@ epic_detach(dev)
 {
        struct ifnet *ifp;
        epic_softc_t *sc;
-       int s;
 
-       s = splimp();
+       crit_enter();
 
        sc = device_get_softc(dev);
        ifp = &sc->arpcom.ac_if;
@@ -370,7 +370,7 @@ epic_detach(dev)
        free(sc->tx_desc, M_DEVBUF);
        free(sc->rx_desc, M_DEVBUF);
 
-       splx(s);
+       crit_exit();
 
        return(0);
 }
@@ -408,9 +408,9 @@ epic_ifioctl(ifp, command, data, cr)
        epic_softc_t *sc = ifp->if_softc;
        struct mii_data *mii;
        struct ifreq *ifr = (struct ifreq *) data;
-       int x, error = 0;
+       int error = 0;
 
-       x = splimp();
+       crit_enter();
 
        switch (command) {
        case SIOCSIFMTU:
@@ -471,7 +471,7 @@ epic_ifioctl(ifp, command, data, cr)
                error = ether_ioctl(ifp, command, data);
                break;
        }
-       splx(x);
+       crit_exit();
 
        return error;
 }
@@ -825,9 +825,8 @@ epic_ifwatchdog(ifp)
        struct ifnet *ifp;
 {
        epic_softc_t *sc = ifp->if_softc;
-       int x;
 
-       x = splimp();
+       crit_enter();
 
        device_printf(sc->dev, "device timeout %d packets\n", sc->pending_txs);
 
@@ -851,7 +850,7 @@ epic_ifwatchdog(ifp)
        if (!ifq_is_empty(&ifp->if_snd))
                epic_ifstart(ifp);
 
-       splx(x);
+       crit_exit();
 }
 
 /*
@@ -863,16 +862,15 @@ epic_stats_update(void *xsc)
 {
        epic_softc_t *sc = xsc;
        struct mii_data * mii;
-       int s;
 
-       s = splimp();
+       crit_enter();
 
        mii = device_get_softc(sc->miibus);
        mii_tick(mii);
 
        callout_reset(&sc->tx_stat_timer, hz, epic_stats_update, sc);
 
-       splx(s);
+       crit_exit();
 }
 
 /*
@@ -1123,13 +1121,13 @@ epic_init(sc)
        epic_softc_t *sc;
 {
        struct ifnet *ifp = &sc->sc_if;
-       int s,i;
+       int     i;
 
-       s = splimp();
+       crit_enter();
 
        /* If interface is already running, then we need not do anything */
        if (ifp->if_flags & IFF_RUNNING) {
-               splx(s);
+               crit_exit();
                return 0;
        }
 
@@ -1152,7 +1150,7 @@ epic_init(sc)
        /* Initialize rings */
        if (epic_init_rings(sc)) {
                device_printf(sc->dev, "failed to init rings\n");
-               splx(s);
+               crit_exit();
                return -1;
        }       
 
@@ -1203,7 +1201,7 @@ epic_init(sc)
 
        callout_reset(&sc->tx_stat_timer, hz, epic_stats_update, sc);
 
-       splx(s);
+       crit_exit();
 
        return 0;
 }
@@ -1453,9 +1451,8 @@ static void
 epic_stop(sc)
        epic_softc_t *sc;
 {
-       int s;
 
-       s = splimp();
+       crit_enter();
 
        sc->sc_if.if_timer = 0;
 
@@ -1481,7 +1478,7 @@ epic_stop(sc)
        /* Mark as stoped */
        sc->sc_if.if_flags &= ~IFF_RUNNING;
 
-       splx(s);
+       crit_exit();
        return;
 }
 
index 022aeb4..ea8fab1 100644 (file)
@@ -1,6 +1,6 @@
 /*     $OpenBSD: if_txp.c,v 1.48 2001/06/27 06:34:50 kjc Exp $ */
 /*     $FreeBSD: src/sys/dev/txp/if_txp.c,v 1.4.2.4 2001/12/14 19:50:43 jlemon Exp $ */
-/*     $DragonFly: src/sys/dev/netif/txp/if_txp.c,v 1.20 2005/05/27 15:13:10 joerg Exp $ */
+/*     $DragonFly: src/sys/dev/netif/txp/if_txp.c,v 1.21 2005/06/06 23:12:07 okumoto Exp $ */
 
 /*
  * Copyright (c) 2001
@@ -47,6 +47,7 @@
 #include <sys/malloc.h>
 #include <sys/kernel.h>
 #include <sys/socket.h>
+#include <sys/thread2.h>
 
 #include <net/if.h>
 #include <net/ifq_var.h>
@@ -1055,9 +1056,9 @@ txp_ioctl(ifp, command, data, cr)
 {
        struct txp_softc *sc = ifp->if_softc;
        struct ifreq *ifr = (struct ifreq *)data;
-       int s, error = 0;
+       int error = 0;
 
-       s = splnet();
+       crit_enter();
 
        switch(command) {
        case SIOCSIFFLAGS:
@@ -1086,7 +1087,7 @@ txp_ioctl(ifp, command, data, cr)
                break;
        }
 
-       (void)splx(s);
+       crit_exit();
 
        return(error);
 }
@@ -1159,7 +1160,6 @@ txp_init(xsc)
        struct ifnet *ifp;
        u_int16_t p1;
        u_int32_t p2;
-       int s;
 
        sc = xsc;
        ifp = &sc->sc_arpcom.ac_if;
@@ -1169,7 +1169,7 @@ txp_init(xsc)
 
        txp_stop(sc);
 
-       s = splnet();
+       crit_enter();
 
        txp_command(sc, TXP_CMD_MAX_PKT_SIZE_WRITE, TXP_MAX_PKTLEN, 0, 0,
            NULL, NULL, NULL, 1);
@@ -1204,7 +1204,7 @@ txp_init(xsc)
 
        callout_reset(&sc->txp_stat_timer, hz, txp_tick, sc);
 
-       splx(s);
+       crit_exit();
 }
 
 static void
@@ -1215,9 +1215,8 @@ txp_tick(vsc)
        struct ifnet *ifp = &sc->sc_arpcom.ac_if;
        struct txp_rsp_desc *rsp = NULL;
        struct txp_ext_desc *ext;
-       int s;
 
-       s = splnet();
+       crit_enter();
        txp_rxbuf_reclaim(sc);
 
        if (txp_command2(sc, TXP_CMD_READ_STATISTICS, 0, 0, 0, NULL, 0,
@@ -1243,7 +1242,7 @@ out:
        if (rsp != NULL)
                free(rsp, M_DEVBUF);
 
-       splx(s);
+       crit_exit();
        callout_reset(&sc->txp_stat_timer, hz, txp_tick, sc);
 
        return;
index adf0c82..774088a 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/pci/if_vr.c,v 1.26.2.13 2003/02/06 04:46:20 silby Exp $
- * $DragonFly: src/sys/dev/netif/vr/if_vr.c,v 1.24 2005/05/27 15:36:10 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/vr/if_vr.c,v 1.25 2005/06/06 23:12:07 okumoto Exp $
  */
 
 /*
@@ -67,6 +67,7 @@
 #include <sys/malloc.h>
 #include <sys/kernel.h>
 #include <sys/socket.h>
+#include <sys/thread2.h>
 
 #include <net/if.h>
 #include <net/ifq_var.h>
@@ -285,9 +286,9 @@ static int
 vr_mii_readreg(struct vr_softc *sc, struct vr_mii_frame *frame)
 #ifdef VR_USESWSHIFT   
 {
-       int i, ack, s;
+       int i, ack;
 
-       s = splimp();
+       crit_enter();
 
        /* Set up frame for RX. */
        frame->mii_stdelim = VR_MII_STARTDELIM;
@@ -357,7 +358,7 @@ fail:
        SIO_SET(VR_MIICMD_CLK);
        DELAY(1);
 
-       splx(s);
+       crit_exit();
 
        if (ack)
                return(1);
@@ -365,9 +366,9 @@ fail:
 }
 #else
 {
-       int s, i;
+       int i;
 
-       s = splimp();
+       crit_enter();
 
        /* Set the PHY address. */
        CSR_WRITE_1(sc, VR_PHYADDR, (CSR_READ_1(sc, VR_PHYADDR)& 0xe0)|
@@ -384,7 +385,7 @@ fail:
        }
        frame->mii_data = CSR_READ_2(sc, VR_MIIDATA);
 
-       splx(s);
+       crit_exit();
 
        return(0);
 }
@@ -398,9 +399,8 @@ static int
 vr_mii_writereg(struct vr_softc *sc, struct vr_mii_frame *frame)
 #ifdef VR_USESWSHIFT   
 {
-       int s;
 
-       s = splimp();
+       crit_enter();
 
        CSR_WRITE_1(sc, VR_MIICMD, 0);
        VR_SETBIT(sc, VR_MIICMD, VR_MIICMD_DIRECTPGM);
@@ -431,15 +431,15 @@ vr_mii_writereg(struct vr_softc *sc, struct vr_mii_frame *frame)
        /* Turn off xmit. */
        SIO_CLR(VR_MIICMD_DIR);
 
-       splx(s);
+       crit_exit();
 
        return(0);
 }
 #else
 {
-       int s, i;
+       int i;
 
-       s = splimp();
+       crit_enter();
 
        /* Set the PHY-adress */
        CSR_WRITE_1(sc, VR_PHYADDR, (CSR_READ_1(sc, VR_PHYADDR)& 0xe0)|
@@ -457,7 +457,7 @@ vr_mii_writereg(struct vr_softc *sc, struct vr_mii_frame *frame)
                DELAY(1);
        }
 
-       splx(s);
+       crit_exit();
 
        return(0);
 }
@@ -690,14 +690,14 @@ vr_probe(device_t dev)
 static int
 vr_attach(device_t dev)
 {
-       int i, s;
+       int i;
        uint8_t eaddr[ETHER_ADDR_LEN];
        uint32_t command;
        struct vr_softc *sc;
        struct ifnet *ifp;
        int error = 0, rid;
 
-       s = splimp();
+       crit_enter();
 
        sc = device_get_softc(dev);
        callout_init(&sc->vr_stat_timer);
@@ -866,7 +866,7 @@ vr_attach(device_t dev)
        ether_ifattach(ifp, eaddr);
 
 fail:
-       splx(s);
+       crit_exit();
        return(error);
 }
 
@@ -875,9 +875,8 @@ vr_detach(device_t dev)
 {
        struct vr_softc *sc;
        struct ifnet *ifp;
-       int s;
 
-       s = splimp();
+       crit_enter();
 
        sc = device_get_softc(dev);
        ifp = &sc->arpcom.ac_if;
@@ -894,7 +893,7 @@ vr_detach(device_t dev)
 
        contigfree(sc->vr_ldata, sizeof(struct vr_list_data), M_DEVBUF);
 
-       splx(s);
+       crit_exit();
 
        return(0);
 }
@@ -1205,9 +1204,8 @@ vr_tick(void *xsc)
 {
        struct vr_softc *sc;
        struct mii_data *mii;
-       int s;
 
-       s = splimp();
+       crit_enter();
 
        sc = xsc;
        if (sc->vr_flags & VR_F_RESTART) {
@@ -1223,7 +1221,7 @@ vr_tick(void *xsc)
 
        callout_reset(&sc->vr_stat_timer, hz, vr_tick, sc);
 
-       splx(s);
+       crit_exit();
 }
 
 static void
@@ -1441,9 +1439,9 @@ vr_init(void *xsc)
        struct vr_softc *sc = xsc;
        struct ifnet *ifp = &sc->arpcom.ac_if;
        struct mii_data *mii;
-       int s, i;
+       int i;
 
-       s = splimp();
+       crit_enter();
 
        mii = device_get_softc(sc->vr_miibus);
 
@@ -1479,7 +1477,7 @@ vr_init(void *xsc)
        if (vr_list_rx_init(sc) == ENOBUFS) {
                if_printf(ifp, "initialization failed: no memory for rx buffers\n");
                vr_stop(sc);
-               splx(s);
+               crit_exit();
                return;
        }
 
@@ -1527,7 +1525,7 @@ vr_init(void *xsc)
        ifp->if_flags |= IFF_RUNNING;
        ifp->if_flags &= ~IFF_OACTIVE;
 
-       splx(s);
+       crit_exit();
 
        callout_reset(&sc->vr_stat_timer, hz, vr_tick, sc);
 }
@@ -1570,9 +1568,9 @@ vr_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr)
        struct vr_softc *sc = ifp->if_softc;
        struct ifreq *ifr = (struct ifreq *) data;
        struct mii_data *mii;
-       int s, error = 0;
+       int error = 0;
 
-       s = splimp();
+       crit_enter();
 
        switch(command) {
        case SIOCSIFFLAGS:
@@ -1599,7 +1597,7 @@ vr_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr)
                break;
        }
 
-       splx(s);
+       crit_exit();
 
        return(error);
 }
index 86e2429..8ec34f3 100644 (file)
@@ -28,7 +28,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/dev/vx/if_vx.c,v 1.25.2.6 2002/02/13 00:43:10 dillon Exp $
- * $DragonFly: src/sys/dev/netif/vx/if_vx.c,v 1.17 2005/05/27 15:36:10 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/vx/if_vx.c,v 1.18 2005/06/06 23:12:07 okumoto Exp $
  *
  */
 
@@ -63,6 +63,7 @@
 #include <sys/socket.h>
 #include <sys/linker_set.h>
 #include <sys/module.h>
+#include <sys/thread2.h>
 
 #include <net/if.h>
 #include <net/ifq_var.h>
@@ -392,7 +393,7 @@ vxstart(ifp)
 {
     struct vx_softc *sc = ifp->if_softc;
     struct mbuf *m0;
-    int sh, len, pad;
+    int len, pad;
 
     /* Don't transmit if interface is busy or not running */
     if ((sc->arpcom.ac_if.if_flags & (IFF_RUNNING|IFF_OACTIVE)) != IFF_RUNNING)
@@ -442,10 +443,10 @@ startagain:
     BPF_MTAP(&sc->arpcom.ac_if, m0);
 
     /*
-     * Do the output at splhigh() so that an interrupt from another device
+     * Do the output in a critical section so that an interrupt from another device
      * won't cause a FIFO underrun.
      */
-    sh = splhigh();
+    crit_enter();
 
     CSR_WRITE_4(sc, VX_W1_TX_PIO_WR_1, len | TX_INDICATE);
 
@@ -463,7 +464,7 @@ startagain:
     while (pad--)
        CSR_WRITE_1(sc, VX_W1_TX_PIO_WR_1, 0);  /* Padding */
 
-    splx(sh);
+    crit_exit();
 
     ++ifp->if_opackets;
     ifp->if_timer = 1;
@@ -769,11 +770,11 @@ vxget(sc, totlen)
     mp = &top;
 
     /*
-     * We read the packet at splhigh() so that an interrupt from another
+     * We read the packet in a critical section so that an interrupt from another
      * device doesn't cause the card's buffer to overflow while we're
      * reading it.  We may still lose packets at other times.
      */
-    sh = splhigh();
+    crit_enter();
 
     /*
      * Since we don't set allowLargePackets bit in MacControl register,
@@ -788,7 +789,7 @@ vxget(sc, totlen)
             if (m == 0) {
                 MGET(m, MB_DONTWAIT, MT_DATA);
                 if (m == 0) {
-                    splx(sh);
+                    crit_exit();
                     m_freem(top);
                     return 0;
                 }
@@ -819,7 +820,7 @@ vxget(sc, totlen)
 
     CSR_WRITE_2(sc, VX_COMMAND, RX_DISCARD_TOP_PACK);
 
-    splx(sh);
+    crit_exit();
 
     return top;
 }
@@ -834,9 +835,9 @@ vxioctl(ifp, cmd, data, cr)
 {
     struct vx_softc *sc = ifp->if_softc;
     struct ifreq *ifr = (struct ifreq *) data;
-    int s, error = 0;
+    int error = 0;
 
-    s = splimp();
+    crit_enter();
 
     switch (cmd) {
     case SIOCSIFFLAGS:
@@ -893,7 +894,7 @@ vxioctl(ifp, cmd, data, cr)
        break;
     }
 
-    splx(s);
+    crit_exit();
 
     return (error);
 }
@@ -902,12 +903,12 @@ static void
 vxreset(sc)
     struct vx_softc *sc;
 {
-    int s;
-    s = splimp();
+
+    crit_enter();
 
     vxstop(sc);
     vxinit(sc);
-    splx(s);
+    crit_exit();
 }
 
 static void
@@ -974,9 +975,9 @@ vxmbuffill(sp)
     void *sp;
 {
     struct vx_softc *sc = (struct vx_softc *) sp;
-    int s, i;
+    int        i;
 
-    s = splimp();
+    crit_enter();
     i = sc->last_mb;
     do {
        if (sc->mb[i] == NULL)
@@ -993,16 +994,16 @@ vxmbuffill(sp)
     } else {
        sc->buffill_pending = 0;
     }
-    splx(s);
+    crit_exit();
 }
 
 static void
 vxmbufempty(sc)
     struct vx_softc *sc;
 {
-    int s, i;
+    int        i;
 
-    s = splimp();
+    crit_enter();
     for (i = 0; i < MAX_MBS; i++) {
        if (sc->mb[i]) {
            m_freem(sc->mb[i]);
@@ -1012,5 +1013,5 @@ vxmbufempty(sc)
     sc->last_mb = sc->next_mb = 0;
     if (sc->buffill_pending != 0)
        callout_stop(&sc->vx_timer);
-    splx(s);
+    crit_exit();
 }
index f509102..c349b44 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/pci/if_wb.c,v 1.26.2.6 2003/03/05 18:42:34 njl Exp $
- * $DragonFly: src/sys/dev/netif/wb/if_wb.c,v 1.24 2005/05/31 14:11:43 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/wb/if_wb.c,v 1.25 2005/06/06 23:12:07 okumoto Exp $
  */
 
 /*
@@ -94,6 +94,7 @@
 #include <sys/kernel.h>
 #include <sys/socket.h>
 #include <sys/queue.h>
+#include <sys/thread2.h>
 
 #include <net/if.h>
 #include <net/ifq_var.h>
@@ -348,9 +349,9 @@ wb_mii_send(struct wb_softc *sc, uint32_t bits, int cnt)
 static int
 wb_mii_readreg(struct wb_softc *sc, struct wb_mii_frame *frame)
 {
-       int ack, i, s;
+       int ack, i;
 
-       s = splimp();
+       crit_enter();
 
        /*
         * Set up frame for RX.
@@ -429,7 +430,7 @@ fail:
        SIO_SET(WB_SIO_MII_CLK);
        DELAY(1);
 
-       splx(s);
+       crit_exit();
 
        if (ack)
                return(1);
@@ -442,9 +443,8 @@ fail:
 static int
 wb_mii_writereg(struct wb_softc *sc, struct wb_mii_frame *frame)       
 {
-       int s;
 
-       s = splimp();
+       crit_enter();
        /*
         * Set up frame for TX.
         */
@@ -478,7 +478,7 @@ wb_mii_writereg(struct wb_softc *sc, struct wb_mii_frame *frame)
         */
        SIO_CLR(WB_SIO_MII_DIR);
 
-       splx(s);
+       crit_exit();
 
        return(0);
 }
@@ -710,9 +710,9 @@ wb_attach(device_t dev)
        uint32_t command;
        struct wb_softc *sc;
        struct ifnet *ifp;
-       int error = 0, rid, s, unit;
+       int error = 0, rid, unit;
 
-       s = splimp();
+       crit_enter();
 
        sc = device_get_softc(dev);
        unit = device_get_unit(dev);
@@ -865,7 +865,7 @@ wb_attach(device_t dev)
 fail:
        if (error)
                device_delete_child(dev, sc->wb_miibus);
-       splx(s);
+       crit_exit();
 
        return(error);
 }
@@ -875,9 +875,8 @@ wb_detach(device_t dev)
 {
        struct wb_softc *sc = device_get_softc(dev);
        struct ifnet *ifp = &sc->arpcom.ac_if;
-       int s;
 
-       s = splimp();
+       crit_enter();
 
        wb_stop(sc);
        ether_ifdetach(ifp);
@@ -893,7 +892,7 @@ wb_detach(device_t dev)
        contigfree(sc->wb_ldata_ptr, sizeof(struct wb_list_data) + 8,
            M_DEVBUF);
 
-       splx(s);
+       crit_exit();
 
        return(0);
 }
@@ -1228,15 +1227,14 @@ wb_tick(void *xsc)
 {
        struct wb_softc *sc = xsc;
        struct mii_data *mii = device_get_softc(sc->wb_miibus);
-       int s;
 
-       s = splimp();
+       crit_enter();
 
        mii_tick(mii);
 
        callout_reset(&sc->wb_stat_timer, hz, wb_tick, sc);
 
-       splx(s);
+       crit_exit();
 }
 
 /*
@@ -1417,10 +1415,10 @@ wb_init(void *xsc)
 {
        struct wb_softc *sc = xsc;
        struct ifnet *ifp = &sc->arpcom.ac_if;
-       int s, i;
+       int i;
        struct mii_data *mii;
 
-       s = splimp();
+       crit_enter();
 
        mii = device_get_softc(sc->wb_miibus);
 
@@ -1471,7 +1469,7 @@ wb_init(void *xsc)
                printf("wb%d: initialization failed: no "
                        "memory for rx buffers\n", sc->wb_unit);
                wb_stop(sc);
-               splx(s);
+               crit_exit();
                return;
        }
 
@@ -1522,7 +1520,7 @@ wb_init(void *xsc)
        ifp->if_flags |= IFF_RUNNING;
        ifp->if_flags &= ~IFF_OACTIVE;
 
-       splx(s);
+       crit_exit();
 
        callout_reset(&sc->wb_stat_timer, hz, wb_tick, sc);
 }
@@ -1561,9 +1559,9 @@ wb_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr)
        struct wb_softc *sc = ifp->if_softc;
        struct mii_data *mii;
        struct ifreq *ifr = (struct ifreq *) data;
-       int error = 0, s;
+       int error = 0;
 
-       s = splimp();
+       crit_enter();
 
        switch(command) {
        case SIOCSIFFLAGS:
@@ -1588,7 +1586,7 @@ wb_ioctl(struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr)
                break;
        }
 
-       splx(s);
+       crit_exit();
 
        return(error);
 }
index 8b6bcf2..fa537c3 100644 (file)
@@ -1,5 +1,5 @@
 /* $FreeBSD: src/sys/i386/isa/if_wl.c,v 1.27.2.2 2000/07/17 21:24:32 archie Exp $ */
-/* $DragonFly: src/sys/dev/netif/wl/if_wl.c,v 1.18 2005/05/27 15:36:10 joerg Exp $ */
+/* $DragonFly: src/sys/dev/netif/wl/if_wl.c,v 1.19 2005/06/06 23:12:07 okumoto Exp $ */
 /* 
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -200,6 +200,7 @@ WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include <sys/socket.h>
 #include <sys/syslog.h>
 #include <sys/proc.h>
+#include <sys/thread2.h>
 
 #include <sys/kernel.h>
 #include <sys/sysctl.h>
@@ -367,7 +368,6 @@ wlprobe(struct isa_device *id)
     short      base = id->id_iobase;
     char               *str = "wl%d: board out of range [0..%d]\n";
     u_char             inbuf[100];
-    unsigned long      oldpri;
     int                        irq;
 
     /* TBD. not true.
@@ -375,12 +375,12 @@ wlprobe(struct isa_device *id)
      */
 #define PCMD(base, hacr) outw((base), (hacr))
 
-    oldpri = splimp();
+    crit_enter();
     PCMD(base, HACR_RESET);                    /* reset the board */
     DELAY(DELAYCONST);                         /* >> 4 clocks at 6MHz */
     PCMD(base, HACR_RESET);                    /* reset the board */
     DELAY(DELAYCONST);                         /* >> 4 clocks at 6MHz */
-    splx(oldpri);
+    crit_exit();
 
     /* clear reset command and set PIO#1 in autoincrement mode */
     PCMD(base, HACR_DEFAULT);
@@ -668,7 +668,6 @@ wlinit(void *xsc)
     struct wl_softc *sc = xsc;
     struct ifnet       *ifp = &sc->wl_if;
     int                        stat;
-    u_long             oldpri;
 
 #ifdef WLDEBUG
     if (sc->wl_if.if_flags & IFF_DEBUG)
@@ -681,7 +680,7 @@ wlinit(void *xsc)
 #endif
        return;
     }
-    oldpri = splimp();
+    crit_enter();
     if ((stat = wlhwrst(sc->unit)) == TRUE) {
        sc->wl_if.if_flags |= IFF_RUNNING;   /* same as DSF_RUNNING */
        /* 
@@ -698,7 +697,7 @@ wlinit(void *xsc)
     } else {
        printf("wl%d init(): trouble resetting board.\n", sc->unit);
     }
-    splx(oldpri);
+    crit_exit();
 }
 
 /*
@@ -1135,7 +1134,7 @@ wlioctl(struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *cred)
     struct wl_softc    *sc = WLSOFTC(unit);
     short              base = sc->base;
     short              mode = 0;
-    int                        opri, error = 0;
+    int                        error = 0;
     int                        irq, irqval, i, isroot, size;
     caddr_t            up;
     char *             cpt;
@@ -1146,7 +1145,7 @@ wlioctl(struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *cred)
     if (sc->wl_if.if_flags & IFF_DEBUG)
        printf("wl%d: entered wlioctl()\n",unit);
 #endif
-    opri = splimp();
+    crit_enter();
     switch (cmd) {
     case SIOCSIFFLAGS:
        if (ifp->if_flags & IFF_ALLMULTI) {
@@ -1375,7 +1374,7 @@ wlioctl(struct ifnet *ifp, u_long cmd, caddr_t data, struct ucred *cred)
         error = ether_ioctl(ifp, cmd, data);
         break;
     }
-    splx(opri);
+    crit_exit();
     return (error);
 }
 
@@ -2370,7 +2369,7 @@ wlsetpsa(int unit)
 {
     struct wl_softc *sc = WLSOFTC(unit);
     short      base = sc->base;
-    int                i, oldpri;
+    int                i;
     u_short    crc;
 
     crc = wlpsacrc(sc->psa);   /* calculate CRC of PSA */
@@ -2378,7 +2377,7 @@ wlsetpsa(int unit)
     sc->psa[WLPSA_CRCHIGH] = (crc >> 8) & 0xff;
     sc->psa[WLPSA_CRCOK] = 0x55;       /* default to 'bad' until programming complete */
 
-    oldpri = splimp();         /* ick, long pause */
+    crit_enter();              /* ick, long pause */
     
     PCMD(base, HACR_DEFAULT & ~HACR_16BITS);
     PCMD(base, HACR_DEFAULT & ~HACR_16BITS);
@@ -2399,7 +2398,7 @@ wlsetpsa(int unit)
     PCMD(base, HACR_DEFAULT);
     PCMD(base, HACR_DEFAULT);
     
-    splx(oldpri);
+    crit_exit();
 }
 
 /* 
index 1de7aa9..268d0b2 100644 (file)
@@ -25,7 +25,7 @@
  *
  *     $Id: if_xe.c,v 1.20 1999/06/13 19:17:40 scott Exp $
  * $FreeBSD: src/sys/dev/xe/if_xe.c,v 1.13.2.6 2003/02/05 22:03:57 mbr Exp $
- * $DragonFly: src/sys/dev/netif/xe/if_xe.c,v 1.19 2005/05/27 15:36:10 joerg Exp $
+ * $DragonFly: src/sys/dev/netif/xe/if_xe.c,v 1.20 2005/06/06 23:12:07 okumoto Exp $
  */
 
 /*
 #include <sys/sockio.h>
 #include <sys/systm.h>
 #include <sys/uio.h>
+#include <sys/thread2.h>
 
 #include <sys/module.h>
 #include <sys/bus.h>
@@ -596,7 +597,6 @@ xe_attach (device_t dev) {
 static void
 xe_init(void *xscp) {
   struct xe_softc *scp = xscp;
-  int s;
 
 #ifdef XE_DEBUG
   device_printf(scp->dev, "init\n");
@@ -610,7 +610,7 @@ xe_init(void *xscp) {
   scp->tx_collisions = 0;
   scp->ifp->if_timer = 0;
 
-  s = splimp();
+  crit_enter();
 
   XE_SELECT_PAGE(0x42);
   XE_OUTB(XE_SWC0, 0x20);      /* Disable source insertion (WTF is that?) */
@@ -666,13 +666,13 @@ xe_init(void *xscp) {
     xe_start(scp->ifp);
   }
 
-  (void)splx(s);
+  crit_exit();
 }
 
 
 /*
  * Start output on interface.  We make two assumptions here:
- *  1) that the current priority is set to splimp _before_ this code
+ *  1) that we are in a critical section _before_ this code
  *     is called *and* is returned to the appropriate priority after
  *     return
  *  2) that the IFF_OACTIVE flag is checked before this code is called
@@ -723,12 +723,12 @@ xe_start(struct ifnet *ifp) {
 static int
 xe_ioctl (struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr) {
   struct xe_softc *scp;
-  int s, error;
+  int          error;
 
   scp = ifp->if_softc;
   error = 0;
 
-  s = splimp();
+  crit_enter();
 
   switch (command) {
 
@@ -773,7 +773,7 @@ xe_ioctl (struct ifnet *ifp, u_long command, caddr_t data, struct ucred *cr) {
     break;
   }
 
-  (void)splx(s);
+  crit_exit();
 
   return error;
 }
@@ -1392,13 +1392,12 @@ static void xe_setmedia(void *xscp) {
  */
 static void
 xe_hard_reset(struct xe_softc *scp) {
-  int s;
 
 #ifdef XE_DEBUG
   device_printf(scp->dev, "hard_reset\n");
 #endif
 
-  s = splimp();
+  crit_enter();
 
   /*
    * Power cycle the card.
@@ -1414,7 +1413,7 @@ xe_hard_reset(struct xe_softc *scp) {
   DELAY(40000);
   XE_SELECT_PAGE(0);
 
-  (void)splx(s);
+  crit_exit();
 }
 
 
@@ -1427,13 +1426,12 @@ xe_hard_reset(struct xe_softc *scp) {
  */
 static void
 xe_soft_reset(struct xe_softc *scp) {
-  int s;
 
 #ifdef XE_DEBUG
   device_printf(scp->dev, "soft_reset\n");
 #endif
 
-  s = splimp();
+  crit_enter();
 
   /*
    * Reset the card, (again).
@@ -1485,7 +1483,7 @@ xe_soft_reset(struct xe_softc *scp) {
 
   XE_SELECT_PAGE(0);
 
-  (void)splx(s);
+  crit_exit();
 }
 
 
@@ -1496,13 +1494,12 @@ xe_soft_reset(struct xe_softc *scp) {
  */
 static void
 xe_stop(struct xe_softc *scp) {
-  int s;
 
 #ifdef XE_DEBUG
   device_printf(scp->dev, "stop\n");
 #endif
 
-  s = splimp();
+  crit_enter();
 
   /*
    * Shut off interrupts.
@@ -1523,7 +1520,7 @@ xe_stop(struct xe_softc *scp) {
   scp->ifp->if_flags &= ~IFF_OACTIVE;
   scp->ifp->if_timer = 0;
 
-  (void)splx(s);
+  crit_exit();
 }
 
 
@@ -1912,9 +1909,9 @@ xe_mii_send(struct xe_softc *scp, u_int32_t bits, int cnt) {
  */
 static int
 xe_mii_readreg(struct xe_softc *scp, struct xe_mii_frame *frame) {
-  int i, ack, s;
+  int i, ack;
 
-  s = splimp();
+  crit_enter();
 
   /*
    * Set up frame for RX.
@@ -1991,7 +1988,7 @@ fail:
   XE_MII_SET(XE_MII_CLK);
   DELAY(1);
 
-  splx(s);
+  crit_exit();
 
   if (ack)
     return(1);
@@ -2004,9 +2001,8 @@ fail:
  */
 static int
 xe_mii_writereg(struct xe_softc *scp, struct xe_mii_frame *frame) {
-  int s;
 
-  s = splimp();
+  crit_enter();
 
   /*
    * Set up frame for TX.
@@ -2042,7 +2038,7 @@ xe_mii_writereg(struct xe_softc *scp, struct xe_mii_frame *frame) {
    */
   XE_MII_CLR(XE_MII_DIR);
 
-  splx(s);
+  crit_exit();
 
   return(0);
 }
@@ -2089,9 +2085,9 @@ xe_phy_writereg(struct xe_softc *scp, u_int16_t reg, u_int16_t data) {
  */
 static void
 xe_mii_dump(struct xe_softc *scp) {
-  int i, s;
+  int i;
 
-  s = splimp();
+  crit_enter();
 
   device_printf(scp->dev, "MII registers: ");
   for (i = 0; i < 2; i++) {
@@ -2102,14 +2098,14 @@ xe_mii_dump(struct xe_softc *scp) {
   }
   printf("\n");
 
-  (void)splx(s);
+  crit_exit();
 }
 
 static void
 xe_reg_dump(struct xe_softc *scp) {
-  int page, i, s;
+  int page, i;
 
-  s = splimp();
+  crit_enter();
 
   device_printf(scp->dev, "Common registers: ");
   for (i = 0; i < 8; i++) {
@@ -2140,7 +2136,7 @@ xe_reg_dump(struct xe_softc *scp) {
     printf("\n");
   }
 
-  (void)splx(s);
+  crit_exit();
 }
 #endif