Convert to critical sections.
authorJoerg Sonnenberger <joerg@dragonflybsd.org>
Thu, 16 Jun 2005 15:51:34 +0000 (15:51 +0000)
committerJoerg Sonnenberger <joerg@dragonflybsd.org>
Thu, 16 Jun 2005 15:51:34 +0000 (15:51 +0000)
sys/dev/misc/dcons/dcons_os.c
sys/dev/misc/joy/joy.c

index e738a43..c0c17fc 100644 (file)
@@ -32,7 +32,7 @@
  * SUCH DAMAGE.
  * 
  * $FreeBSD: src/sys/dev/dcons/dcons_os.c,v 1.4 2004/10/24 12:41:04 simokawa Exp $
- * $DragonFly: src/sys/dev/misc/dcons/dcons_os.c,v 1.1 2004/10/25 13:53:26 simokawa Exp $
+ * $DragonFly: src/sys/dev/misc/dcons/dcons_os.c,v 1.2 2005/06/16 15:50:17 joerg Exp $
  */
 
 #include <sys/param.h>
@@ -50,6 +50,7 @@
 #include <sys/tty.h>
 #include <sys/malloc.h>
 #include <sys/proc.h>
+#include <sys/thread2.h>
 #include <sys/ucred.h>
 
 #include <machine/bus.h>
@@ -278,7 +279,7 @@ static int
 dcons_open(DEV dev, int flag, int mode, THREAD *td)
 {
        struct tty *tp;
-       int unit, error, s;
+       int unit, error;
 
        unit = minor(dev);
        if (unit != 0)
@@ -292,7 +293,7 @@ dcons_open(DEV dev, int flag, int mode, THREAD *td)
 
        error = 0;
 
-       s = spltty();
+       crit_enter();
        if ((tp->t_state & TS_ISOPEN) == 0) {
                tp->t_state |= TS_CARR_ON;
                ttychars(tp);
@@ -303,10 +304,10 @@ dcons_open(DEV dev, int flag, int mode, THREAD *td)
                tp->t_ispeed = tp->t_ospeed = TTYDEF_SPEED;
                ttsetwater(tp);
        } else if ((tp->t_state & TS_XCLUDE) && suser(td)) {
-               splx(s);
+               crit_exit();
                return (EBUSY);
        }
-       splx(s);
+       crit_exit();
 
 #if __FreeBSD_version < 502113
        error = (*linesw[tp->t_line].l_open)(dev, tp);
@@ -379,10 +380,9 @@ static void
 dcons_tty_start(struct tty *tp)
 {
        struct dcons_softc *dc;
-       int s;
 
        dc = (struct dcons_softc *)tp->t_dev->si_drv1;
-       s = spltty();
+       crit_enter();
        if (tp->t_state & (TS_TIMEOUT | TS_TTSTOP)) {
                ttwwakeup(tp);
                return;
@@ -394,7 +394,7 @@ dcons_tty_start(struct tty *tp)
        tp->t_state &= ~TS_BUSY;
 
        ttwwakeup(tp);
-       splx(s);
+       crit_exit();
 }
 
 static void
index 5157765..0556a24 100644 (file)
@@ -26,7 +26,7 @@
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/isa/joy.c,v 1.38.2.1 2001/09/01 05:55:31 murray Exp $
- * $DragonFly: src/sys/dev/misc/joy/joy.c,v 1.7 2004/05/19 22:52:42 dillon Exp $
+ * $DragonFly: src/sys/dev/misc/joy/joy.c,v 1.8 2005/06/16 15:51:34 joerg Exp $
  */
 
 #include <sys/param.h>
@@ -39,6 +39,7 @@
 #include <machine/bus.h>
 #include <machine/resource.h>
 #include <sys/rman.h>
+#include <sys/thread2.h>
 #include <sys/time.h>
 #include <sys/joystick.h>
 
@@ -195,13 +196,9 @@ joyread(dev_t dev, struct uio *uio, int flag)
     int state = 0;
     struct timespec x, y;
     struct joystick c;
-#ifndef i386
-    int s;
 
-    s = splhigh();
-#else
-    disable_intr ();
-#endif
+    crit_enter();
+
     bus_space_write_1 (bt, port, 0, 0xff);
     nanotime(&start);
     end.tv_sec = 0;
@@ -222,11 +219,9 @@ joyread(dev_t dev, struct uio *uio, int flag)
        if (timespecisset(&x) && timespecisset(&y))
            break;
     }
-#ifndef i386
-    splx(s);
-#else
-    enable_intr ();
-#endif
+
+    crit_exit();
+
     if (timespecisset(&x)) {
        timespecsub(&x, &start);
        c.x = joy->x_off[joypart(dev)] + x.tv_nsec / 1000;