spl->critical section conversion.
authorMatthew Dillon <dillon@dragonflybsd.org>
Fri, 10 Jun 2005 23:29:32 +0000 (23:29 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Fri, 10 Jun 2005 23:29:32 +0000 (23:29 +0000)
sys/dev/powermng/i386/intpm/intpm.c
sys/dev/powermng/ichsmb/ichsmb.c
sys/emulation/linux/linux_misc.c
sys/emulation/ndis/subr_ntoskrnl.c

index f3aa2b5..791742e 100644 (file)
@@ -24,7 +24,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/pci/intpm.c,v 1.16.2.1 2001/12/23 08:17:47 pirzyk Exp $
- * $DragonFly: src/sys/dev/powermng/i386/intpm/intpm.c,v 1.7 2005/05/24 20:59:03 dillon Exp $
+ * $DragonFly: src/sys/dev/powermng/i386/intpm/intpm.c,v 1.8 2005/06/10 23:29:31 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -42,6 +42,7 @@
 #include <sys/malloc.h>
 #include <sys/buf.h>
 #include <sys/rman.h>
+#include <sys/thread2.h>
 #include <machine/resource.h>
 #include <bus/smbus/smbconf.h>
 
@@ -180,8 +181,8 @@ static int
 intsmb_callback(device_t dev, int index, caddr_t data)
 {
        int error = 0;
-       intrmask_t s;
-       s=splnet();
+
+       crit_enter();
        switch (index) {
        case SMB_REQUEST_BUS:
                break;
@@ -190,13 +191,12 @@ intsmb_callback(device_t dev, int index, caddr_t data)
        default:
                error = EINVAL;
        }
-       splx(s);
+       crit_exit();
        return (error);
 }
 /*counterpart of smbtx_smb_free*/
 static        int
 intsmb_free(device_t dev){
-        intrmask_t s;
         struct intsmb_softc *sc = (struct intsmb_softc *)device_get_softc(dev);
         if((bus_space_read_1(sc->st,sc->sh,PIIX4_SMBHSTSTS)&
            PIIX4_SMBHSTSTAT_BUSY)
@@ -206,7 +206,7 @@ intsmb_free(device_t dev){
 #endif
           || sc->isbusy)
                 return EBUSY;
-       s=splhigh();
+       crit_enter();
         sc->isbusy=1;
        /*Disable Intrrupt in slave part*/
 #ifndef ENABLE_ALART
@@ -219,7 +219,7 @@ intsmb_free(device_t dev){
                           PIIX4_SMBHSTSTAT_BUSC|
                           PIIX4_SMBHSTSTAT_FAIL)
                );
-       splx(s);
+       crit_exit();
         return 0;
 }
 
@@ -378,7 +378,6 @@ intsmb_stop_poll(device_t dev){
 static        int
 intsmb_stop(device_t dev){
         int error;
-       intrmask_t s;
         struct intsmb_softc *sc = (struct intsmb_softc *)device_get_softc(dev);
        if(cold){
                /*So that it can use device during probing device on SMBus.*/
@@ -405,12 +404,12 @@ intsmb_stop(device_t dev){
                }
        }
        /*Timeout Procedure*/
-       s=splhigh();
+       crit_enter();
        sc->isbusy=0;
        /*Re-enable supressed intrrupt from slave part*/
        bus_space_write_1(sc->st,sc->sh,
                          PIIX4_SMBSLVCNT,PIIX4_SMBSLVCNT_ALTEN);
-       splx(s);
+       crit_exit();
         return EIO;
 }
 
index 9bd71fb..94e5bd2 100644 (file)
@@ -37,7 +37,7 @@
  * Author: Archie Cobbs <archie@freebsd.org>
  *
  * $FreeBSD: src/sys/dev/ichsmb/ichsmb.c,v 1.1.2.1 2000/10/09 00:52:43 archie Exp $
- * $DragonFly: src/sys/dev/powermng/ichsmb/ichsmb.c,v 1.5 2005/02/17 13:59:36 joerg Exp $
+ * $DragonFly: src/sys/dev/powermng/ichsmb/ichsmb.c,v 1.6 2005/06/10 23:29:32 dillon Exp $
  */
 
 /*
@@ -51,6 +51,7 @@
 #include <sys/errno.h>
 #include <sys/syslog.h>
 #include <sys/bus.h>
+#include <sys/thread2.h>
 
 #include <machine/bus.h>
 #include <sys/rman.h>
@@ -156,7 +157,6 @@ ichsmb_quick(device_t dev, u_char slave, int how)
 {
        const sc_p sc = device_get_softc(dev);
        int smb_error;
-       int s;
 
        DBG("slave=0x%02x how=%d\n", slave, how);
        KASSERT(sc->ich_cmd == -1,
@@ -164,7 +164,7 @@ ichsmb_quick(device_t dev, u_char slave, int how)
        switch (how) {
        case SMB_QREAD:
        case SMB_QWRITE:
-               s = splhigh();
+               crit_enter();
                sc->ich_cmd = ICH_HST_CNT_SMB_CMD_QUICK;
                bus_space_write_1(sc->io_bst, sc->io_bsh, ICH_XMIT_SLVA,
                    (slave << 1) | (how == SMB_QREAD ?
@@ -172,7 +172,7 @@ ichsmb_quick(device_t dev, u_char slave, int how)
                bus_space_write_1(sc->io_bst, sc->io_bsh, ICH_HST_CNT,
                    ICH_HST_CNT_START | ICH_HST_CNT_INTREN | sc->ich_cmd);
                smb_error = ichsmb_wait(sc);
-               splx(s);
+               crit_exit();
                break;
        default:
                smb_error = SMB_ENOTSUPP;
@@ -186,12 +186,11 @@ ichsmb_sendb(device_t dev, u_char slave, char byte)
 {
        const sc_p sc = device_get_softc(dev);
        int smb_error;
-       int s;
 
        DBG("slave=0x%02x byte=0x%02x\n", slave, (u_char)byte);
        KASSERT(sc->ich_cmd == -1,
            ("%s: ich_cmd=%d\n", __func__ , sc->ich_cmd));
-       s = splhigh();
+       crit_enter();
        sc->ich_cmd = ICH_HST_CNT_SMB_CMD_BYTE;
        bus_space_write_1(sc->io_bst, sc->io_bsh, ICH_XMIT_SLVA,
            (slave << 1) | ICH_XMIT_SLVA_WRITE);
@@ -199,7 +198,7 @@ ichsmb_sendb(device_t dev, u_char slave, char byte)
        bus_space_write_1(sc->io_bst, sc->io_bsh, ICH_HST_CNT,
            ICH_HST_CNT_START | ICH_HST_CNT_INTREN | sc->ich_cmd);
        smb_error = ichsmb_wait(sc);
-       splx(s);
+       crit_exit();
        DBG("smb_error=%d\n", smb_error);
        return (smb_error);
 }
@@ -209,12 +208,11 @@ ichsmb_recvb(device_t dev, u_char slave, char *byte)
 {
        const sc_p sc = device_get_softc(dev);
        int smb_error;
-       int s;
 
        DBG("slave=0x%02x\n", slave);
        KASSERT(sc->ich_cmd == -1,
            ("%s: ich_cmd=%d\n", __func__ , sc->ich_cmd));
-       s = splhigh();
+       crit_enter();
        sc->ich_cmd = ICH_HST_CNT_SMB_CMD_BYTE;
        bus_space_write_1(sc->io_bst, sc->io_bsh, ICH_XMIT_SLVA,
            (slave << 1) | ICH_XMIT_SLVA_READ);
@@ -222,7 +220,7 @@ ichsmb_recvb(device_t dev, u_char slave, char *byte)
            ICH_HST_CNT_START | ICH_HST_CNT_INTREN | sc->ich_cmd);
        if ((smb_error = ichsmb_wait(sc)) == SMB_ENOERR)
                *byte = bus_space_read_1(sc->io_bst, sc->io_bsh, ICH_D0);
-       splx(s);
+       crit_exit();
        DBG("smb_error=%d byte=0x%02x\n", smb_error, (u_char)*byte);
        return (smb_error);
 }
@@ -232,13 +230,12 @@ ichsmb_writeb(device_t dev, u_char slave, char cmd, char byte)
 {
        const sc_p sc = device_get_softc(dev);
        int smb_error;
-       int s;
 
        DBG("slave=0x%02x cmd=0x%02x byte=0x%02x\n",
            slave, (u_char)cmd, (u_char)byte);
        KASSERT(sc->ich_cmd == -1,
            ("%s: ich_cmd=%d\n", __func__ , sc->ich_cmd));
-       s = splhigh();
+       crit_enter();
        sc->ich_cmd = ICH_HST_CNT_SMB_CMD_BYTE_DATA;
        bus_space_write_1(sc->io_bst, sc->io_bsh, ICH_XMIT_SLVA,
            (slave << 1) | ICH_XMIT_SLVA_WRITE);
@@ -247,7 +244,7 @@ ichsmb_writeb(device_t dev, u_char slave, char cmd, char byte)
        bus_space_write_1(sc->io_bst, sc->io_bsh, ICH_HST_CNT,
            ICH_HST_CNT_START | ICH_HST_CNT_INTREN | sc->ich_cmd);
        smb_error = ichsmb_wait(sc);
-       splx(s);
+       crit_exit();
        DBG("smb_error=%d\n", smb_error);
        return (smb_error);
 }
@@ -257,13 +254,12 @@ ichsmb_writew(device_t dev, u_char slave, char cmd, short word)
 {
        const sc_p sc = device_get_softc(dev);
        int smb_error;
-       int s;
 
        DBG("slave=0x%02x cmd=0x%02x word=0x%04x\n",
            slave, (u_char)cmd, (u_int16_t)word);
        KASSERT(sc->ich_cmd == -1,
            ("%s: ich_cmd=%d\n", __func__ , sc->ich_cmd));
-       s = splhigh();
+       crit_enter();
        sc->ich_cmd = ICH_HST_CNT_SMB_CMD_WORD_DATA;
        bus_space_write_1(sc->io_bst, sc->io_bsh, ICH_XMIT_SLVA,
            (slave << 1) | ICH_XMIT_SLVA_WRITE);
@@ -273,7 +269,7 @@ ichsmb_writew(device_t dev, u_char slave, char cmd, short word)
        bus_space_write_1(sc->io_bst, sc->io_bsh, ICH_HST_CNT,
            ICH_HST_CNT_START | ICH_HST_CNT_INTREN | sc->ich_cmd);
        smb_error = ichsmb_wait(sc);
-       splx(s);
+       crit_exit();
        DBG("smb_error=%d\n", smb_error);
        return (smb_error);
 }
@@ -283,12 +279,11 @@ ichsmb_readb(device_t dev, u_char slave, char cmd, char *byte)
 {
        const sc_p sc = device_get_softc(dev);
        int smb_error;
-       int s;
 
        DBG("slave=0x%02x cmd=0x%02x\n", slave, (u_char)cmd);
        KASSERT(sc->ich_cmd == -1,
            ("%s: ich_cmd=%d\n", __func__ , sc->ich_cmd));
-       s = splhigh();
+       crit_enter();
        sc->ich_cmd = ICH_HST_CNT_SMB_CMD_BYTE_DATA;
        bus_space_write_1(sc->io_bst, sc->io_bsh, ICH_XMIT_SLVA,
            (slave << 1) | ICH_XMIT_SLVA_READ);
@@ -297,7 +292,7 @@ ichsmb_readb(device_t dev, u_char slave, char cmd, char *byte)
            ICH_HST_CNT_START | ICH_HST_CNT_INTREN | sc->ich_cmd);
        if ((smb_error = ichsmb_wait(sc)) == SMB_ENOERR)
                *byte = bus_space_read_1(sc->io_bst, sc->io_bsh, ICH_D0);
-       splx(s);
+       crit_exit();
        DBG("smb_error=%d byte=0x%02x\n", smb_error, (u_char)*byte);
        return (smb_error);
 }
@@ -307,12 +302,11 @@ ichsmb_readw(device_t dev, u_char slave, char cmd, short *word)
 {
        const sc_p sc = device_get_softc(dev);
        int smb_error;
-       int s;
 
        DBG("slave=0x%02x cmd=0x%02x\n", slave, (u_char)cmd);
        KASSERT(sc->ich_cmd == -1,
            ("%s: ich_cmd=%d\n", __func__ , sc->ich_cmd));
-       s = splhigh();
+       crit_enter();
        sc->ich_cmd = ICH_HST_CNT_SMB_CMD_WORD_DATA;
        bus_space_write_1(sc->io_bst, sc->io_bsh, ICH_XMIT_SLVA,
            (slave << 1) | ICH_XMIT_SLVA_READ);
@@ -325,7 +319,7 @@ ichsmb_readw(device_t dev, u_char slave, char cmd, short *word)
                  | (bus_space_read_1(sc->io_bst,
                        sc->io_bsh, ICH_D1) << 8);
        }
-       splx(s);
+       crit_exit();
        DBG("smb_error=%d word=0x%04x\n", smb_error, (u_int16_t)*word);
        return (smb_error);
 }
@@ -335,13 +329,12 @@ ichsmb_pcall(device_t dev, u_char slave, char cmd, short sdata, short *rdata)
 {
        const sc_p sc = device_get_softc(dev);
        int smb_error;
-       int s;
 
        DBG("slave=0x%02x cmd=0x%02x sdata=0x%04x\n",
            slave, (u_char)cmd, (u_int16_t)sdata);
        KASSERT(sc->ich_cmd == -1,
            ("%s: ich_cmd=%d\n", __func__ , sc->ich_cmd));
-       s = splhigh();
+       crit_enter();
        sc->ich_cmd = ICH_HST_CNT_SMB_CMD_PROC_CALL;
        bus_space_write_1(sc->io_bst, sc->io_bsh, ICH_XMIT_SLVA,
            (slave << 1) | ICH_XMIT_SLVA_WRITE);
@@ -356,7 +349,7 @@ ichsmb_pcall(device_t dev, u_char slave, char cmd, short sdata, short *rdata)
                  | (bus_space_read_1(sc->io_bst,
                        sc->io_bsh, ICH_D1) << 8);
        }
-       splx(s);
+       crit_exit();
        DBG("smb_error=%d rdata=0x%04x\n", smb_error, (u_int16_t)*rdata);
        return (smb_error);
 }
@@ -366,7 +359,6 @@ ichsmb_bwrite(device_t dev, u_char slave, char cmd, u_char count, char *buf)
 {
        const sc_p sc = device_get_softc(dev);
        int smb_error;
-       int s;
 
        DBG("slave=0x%02x cmd=0x%02x count=%d\n", slave, (u_char)cmd, count);
 #if ICHSMB_DEBUG
@@ -393,7 +385,7 @@ ichsmb_bwrite(device_t dev, u_char slave, char cmd, u_char count, char *buf)
        sc->block_index = 1;
        sc->block_write = 1;
 
-       s = splhigh();
+       crit_enter();
        sc->ich_cmd = ICH_HST_CNT_SMB_CMD_BLOCK;
        bus_space_write_1(sc->io_bst, sc->io_bsh, ICH_XMIT_SLVA,
            (slave << 1) | ICH_XMIT_SLVA_WRITE);
@@ -403,7 +395,7 @@ ichsmb_bwrite(device_t dev, u_char slave, char cmd, u_char count, char *buf)
        bus_space_write_1(sc->io_bst, sc->io_bsh, ICH_HST_CNT,
            ICH_HST_CNT_START | ICH_HST_CNT_INTREN | sc->ich_cmd);
        smb_error = ichsmb_wait(sc);
-       splx(s);
+       crit_exit();
        DBG("smb_error=%d\n", smb_error);
        return (smb_error);
 }
@@ -413,7 +405,6 @@ ichsmb_bread(device_t dev, u_char slave, char cmd, u_char count, char *buf)
 {
        const sc_p sc = device_get_softc(dev);
        int smb_error;
-       int s;
 
        DBG("slave=0x%02x cmd=0x%02x count=%d\n", slave, (u_char)cmd, count);
        KASSERT(sc->ich_cmd == -1,
@@ -425,7 +416,7 @@ ichsmb_bread(device_t dev, u_char slave, char cmd, u_char count, char *buf)
        sc->block_index = 0;
        sc->block_write = 0;
 
-       s = splhigh();
+       crit_enter();
        sc->ich_cmd = ICH_HST_CNT_SMB_CMD_BLOCK;
        bus_space_write_1(sc->io_bst, sc->io_bsh, ICH_XMIT_SLVA,
            (slave << 1) | ICH_XMIT_SLVA_READ);
@@ -435,7 +426,7 @@ ichsmb_bread(device_t dev, u_char slave, char cmd, u_char count, char *buf)
            ICH_HST_CNT_START | ICH_HST_CNT_INTREN | sc->ich_cmd);
        if ((smb_error = ichsmb_wait(sc)) == SMB_ENOERR)
                bcopy(sc->block_data, buf, sc->block_count);
-       splx(s);
+       crit_exit();
        DBG("smb_error=%d\n", smb_error);
 #if ICHSMB_DEBUG
 #define DISP(ch)       (((ch) < 0x20 || (ch) >= 0x7e) ? '.' : (ch))
@@ -496,9 +487,8 @@ ichsmb_device_intr(void *cookie)
        u_int8_t ok_bits;
        int cmd_index;
         int count;
-       int s;
 
-       s = splhigh();
+       crit_enter();
        for (count = 0; count < maxloops; count++) {
 
                /* Get and reset status bits */
@@ -610,7 +600,7 @@ finished:
                /* Clear status bits and try again */
                bus_space_write_1(sc->io_bst, sc->io_bsh, ICH_HST_STA, status);
        }
-       splx(s);
+       crit_exit();
 
        /* Too many loops? */
        if (count == maxloops) {
@@ -621,7 +611,7 @@ finished:
 }
 
 /*
- * Wait for command completion. Assumes splhigh().
+ * Wait for command completion. Assumes a critical section.
  * Returns an SMB_* error code.
  */
 static int
index 1d7cba0..b91a480 100644 (file)
@@ -26,7 +26,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/compat/linux/linux_misc.c,v 1.85.2.9 2002/09/24 08:11:41 mdodd Exp $
- * $DragonFly: src/sys/emulation/linux/linux_misc.c,v 1.23 2005/04/22 02:09:15 swildner Exp $
+ * $DragonFly: src/sys/emulation/linux/linux_misc.c,v 1.24 2005/06/10 23:27:01 dillon Exp $
  */
 
 #include "opt_compat.h"
@@ -55,6 +55,7 @@
 #include <sys/vmmeter.h>
 #include <sys/vnode.h>
 #include <sys/wait.h>
+#include <sys/thread2.h>
 
 #include <vm/vm.h>
 #include <vm/pmap.h>
@@ -163,7 +164,6 @@ linux_alarm(struct linux_alarm_args *args)
        struct proc *p = td->td_proc;
        struct itimerval it, old_it;
        struct timeval tv;
-       int s;
 
        KKASSERT(p);
 
@@ -179,7 +179,7 @@ linux_alarm(struct linux_alarm_args *args)
        it.it_value.tv_usec = 0;
        it.it_interval.tv_sec = 0;
        it.it_interval.tv_usec = 0;
-       s = splsoftclock();
+       crit_enter();
        old_it = p->p_realtimer;
        getmicrouptime(&tv);
        if (timevalisset(&old_it.it_value))
@@ -190,7 +190,7 @@ linux_alarm(struct linux_alarm_args *args)
                timevaladd(&it.it_value, &tv);
        }
        p->p_realtimer = it;
-       splx(s);
+       crit_exit();
        if (timevalcmp(&old_it.it_value, &tv, >)) {
                timevalsub(&old_it.it_value, &tv);
                if (old_it.it_value.tv_usec != 0)
index 0682c2c..fe8600a 100644 (file)
@@ -30,7 +30,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/compat/ndis/subr_ntoskrnl.c,v 1.40 2004/07/20 20:28:57 wpaul Exp $
- * $DragonFly: src/sys/emulation/ndis/subr_ntoskrnl.c,v 1.5 2004/11/17 18:59:21 dillon Exp $
+ * $DragonFly: src/sys/emulation/ndis/subr_ntoskrnl.c,v 1.6 2005/06/10 23:27:02 dillon Exp $
  */
 
 #include <sys/ctype.h>
@@ -1137,7 +1137,7 @@ ntoskrnl_munmaplockedpages(vaddr, buf)
 /*
  * The KeInitializeSpinLock(), KefAcquireSpinLockAtDpcLevel()
  * and KefReleaseSpinLockFromDpcLevel() appear to be analagous
- * to splnet()/splx() in their use. We can't create a new mutex
+ * to crit_enter()/crit_exit() in their use. We can't create a new mutex
  * lock here because there is no complimentary KeFreeSpinLock()
  * function. Instead, we grab a mutex from the mutex pool.
  */