kernel: Add a few forgotten crit_exit()s and fix a wrong crit_enter().
authorSascha Wildner <saw@online.de>
Wed, 7 Mar 2012 18:19:33 +0000 (19:19 +0100)
committerSascha Wildner <saw@online.de>
Wed, 7 Mar 2012 18:21:41 +0000 (19:21 +0100)
sys/dev/misc/dcons/dcons_os.c
sys/dev/netif/sr/if_sr.c
sys/dev/serial/rp/rp.c
sys/netinet/sctputil.c
sys/netproto/atm/uni/uniarp_vcm.c

index 261a39f..8fcd3af 100644 (file)
@@ -367,6 +367,7 @@ dcons_tty_start(struct tty *tp)
        crit_enter();
        if (tp->t_state & (TS_TIMEOUT | TS_TTSTOP)) {
                ttwwakeup(tp);
+               crit_exit();
                lwkt_reltoken(&tty_token);
                return;
        }
index 1999147..5d8f0dd 100644 (file)
@@ -2587,7 +2587,7 @@ ngsr_watchdog_frame(void * arg)
        crit_enter();
 
        if (sc->running == 0) {
-               crit_enter();
+               crit_exit();
                return; /* if we are not running let timeouts die */
        }
        /*
index 355c80d..7116976 100644 (file)
@@ -1519,6 +1519,7 @@ rpparam(struct tty *tp, struct termios *t)
 
        ospeed = ttspeedtab(t->c_ispeed, baud_table);
        if(ospeed < 0 || t->c_ispeed != t->c_ospeed) {
+               crit_exit();
                lwkt_reltoken(&tty_token);
                return(EINVAL);
        }
@@ -1532,6 +1533,7 @@ rpparam(struct tty *tp, struct termios *t)
 
        if(t->c_ospeed == 0) {
                sClrDTR(cp);
+               crit_exit();
                lwkt_reltoken(&tty_token);
                return(0);
        }
index 8f3a93f..00f6d52 100644 (file)
@@ -936,6 +936,7 @@ sctp_timeout_handler(void *t)
        sctp_pegs[SCTP_TIMERS_EXP]++;
 
        if (inp == NULL) {
+               crit_exit();
                return;
        }
 
index 0f919e4..f22da58 100644 (file)
@@ -24,7 +24,6 @@
  * notice must be reproduced on all copies.
  *
  *     @(#) $FreeBSD: src/sys/netatm/uni/uniarp_vcm.c,v 1.5 2000/01/17 20:49:55 mks Exp $
- *     @(#) $DragonFly: src/sys/netproto/atm/uni/uniarp_vcm.c,v 1.6 2006/01/14 13:36:39 swildner Exp $
  */
 
 /*
@@ -487,6 +486,7 @@ uniarp_svcactive(struct ipvcc *ivp)
                        atm_cm_release(ivp->iv_arpconn, &uniarp_cause);
                        ivp->iv_arpconn = NULL;
                }
+               crit_exit();
                return (err);
        }