spl->critical section conversion.
authorMatthew Dillon <dillon@dragonflybsd.org>
Fri, 10 Jun 2005 22:44:02 +0000 (22:44 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Fri, 10 Jun 2005 22:44:02 +0000 (22:44 +0000)
sys/netproto/atalk/aarp.c
sys/netproto/atalk/at_control.c
sys/netproto/atalk/ddp_usrreq.c
sys/netproto/ncp/ncp_ncp.c
sys/netproto/ncp/ncp_sock.c
sys/netproto/ns/idp_usrreq.c
sys/netproto/ns/ns.c
sys/netproto/ns/ns_pcb.c
sys/netproto/ns/spp_usrreq.c
sys/netproto/smb/smb_dev.c
sys/netproto/smb/smb_trantcp.c

index 21b995b..b815a69 100644 (file)
@@ -3,7 +3,7 @@
  * All Rights Reserved.
  *
  * $FreeBSD: src/sys/netatalk/aarp.c,v 1.12.2.2 2001/06/23 20:43:09 iedowse Exp $
- * $DragonFly: src/sys/netproto/atalk/aarp.c,v 1.15 2004/12/21 02:54:48 hsu Exp $
+ * $DragonFly: src/sys/netproto/atalk/aarp.c,v 1.16 2005/06/10 22:43:58 dillon Exp $
  */
 
 #include "opt_atalk.h"
@@ -74,7 +74,7 @@ static void
 aarptimer(void *ignored)
 {
     struct aarptab     *aat;
-    int                        i, s;
+    int                        i;
 
     aat = aarptab;
     for ( i = 0; i < AARPTAB_SIZE; i++, aat++ ) {
@@ -83,9 +83,9 @@ aarptimer(void *ignored)
        if ( ++aat->aat_timer < (( aat->aat_flags & ATF_COM ) ?
                AARPT_KILLC : AARPT_KILLI ))
            continue;
-       s = splimp();
+       crit_enter();
        aarptfree( aat );
-       splx( s );
+       crit_exit();
     }
     callout_reset(&aarptimer_ch, AARPT_AGE * hz, aarptimer, NULL);
 }
@@ -203,7 +203,6 @@ aarpresolve( ac, m, destsat, desten )
 {
     struct at_ifaddr   *aa;
     struct aarptab     *aat;
-    int                        s;
 
     if (at_broadcast(destsat)) {
        m->m_flags |= M_BCAST;
@@ -218,7 +217,7 @@ aarpresolve( ac, m, destsat, desten )
        return (1);
     }
 
-    s = splimp();
+    crit_enter();
     AARPTAB_LOOK( aat, destsat->sat_addr );
     if (aat == NULL) {                 /* No entry */
        aat = aarptnew( &destsat->sat_addr );
@@ -227,14 +226,14 @@ aarpresolve( ac, m, destsat, desten )
        }
        aat->aat_hold = m;
        aarpwhohas(ac, destsat);
-       splx(s);
+       crit_exit();
        return (0);
     }
     /* found an entry */
     aat->aat_timer = 0;
     if (aat->aat_flags & ATF_COM) {    /* entry is COMplete */
        bcopy(aat->aat_enaddr, desten, sizeof aat->aat_enaddr);
-       splx(s);
+       crit_exit();
        return (1);
     }
     /* entry has not completed */
@@ -243,7 +242,7 @@ aarpresolve( ac, m, destsat, desten )
     }
     aat->aat_hold = m;
     aarpwhohas(ac, destsat);
-    splx(s);
+    crit_exit();
     return (0);
 }
 
index b027605..de372f7 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (c) 1990,1991 Regents of The University of Michigan.
  * All Rights Reserved.
  *
- * $DragonFly: src/sys/netproto/atalk/at_control.c,v 1.7 2004/09/16 21:55:03 joerg Exp $
+ * $DragonFly: src/sys/netproto/atalk/at_control.c,v 1.8 2005/06/10 22:43:58 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -12,6 +12,7 @@
 #include <sys/malloc.h>
 #include <sys/kernel.h>
 #include <sys/socket.h>
+#include <sys/thread2.h>
 #include <net/if.h>
 #include <net/route.h>
 #include <netinet/in.h>
@@ -375,10 +376,12 @@ at_ifinit( ifp, aa, sat )
 {
     struct netrange    nr, onr;
     struct sockaddr_at oldaddr;
-    int                        s = splimp(), error = 0, i, j;
+    int                        error = 0, i, j;
     int                        netinc, nodeinc, nnets;
     u_short            net;
 
+    crit_enter();
+
     /* 
      * save the old addresses in the at_ifaddr just in case we need them.
      */
@@ -462,7 +465,7 @@ at_ifinit( ifp, aa, sat )
                    aa->aa_addr = oldaddr;
                    aa->aa_firstnet = onr.nr_firstnet;
                    aa->aa_lastnet = onr.nr_lastnet;
-                   splx(s);
+                   crit_exit();
                    return( EINVAL );
                }
                /*
@@ -531,7 +534,7 @@ at_ifinit( ifp, aa, sat )
                    aa->aa_addr = oldaddr;
                    aa->aa_firstnet = onr.nr_firstnet;
                    aa->aa_lastnet = onr.nr_lastnet;
-                   splx( s ); 
+                   crit_exit();
                    return( EINTR );
                }
 
@@ -565,7 +568,7 @@ at_ifinit( ifp, aa, sat )
            aa->aa_addr = oldaddr;
            aa->aa_firstnet = onr.nr_firstnet;
            aa->aa_lastnet = onr.nr_lastnet;
-           splx( s );
+           crit_exit();
            return( EADDRINUSE );
        }
     }
@@ -584,7 +587,7 @@ at_ifinit( ifp, aa, sat )
        aa->aa_addr = oldaddr;
        aa->aa_firstnet = onr.nr_firstnet;
        aa->aa_lastnet = onr.nr_lastnet;
-       splx( s );
+       crit_exit();
        return( error );
     }
 
@@ -652,7 +655,7 @@ at_ifinit( ifp, aa, sat )
        aa->aa_addr = oldaddr;
        aa->aa_firstnet = onr.nr_firstnet;
        aa->aa_lastnet = onr.nr_lastnet;
-       splx( s );
+       crit_exit();
        return( error );
     }
 
@@ -661,7 +664,7 @@ at_ifinit( ifp, aa, sat )
      */
     aa->aa_ifa.ifa_flags |= IFA_ROUTE;
     aa->aa_flags |= AFA_ROUTE;
-    splx( s );
+    crit_exit();
     return( 0 );
 }
 
index 2bdc38f..b7532ea 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (c) 1990,1994 Regents of The University of Michigan.
  * All Rights Reserved.  See COPYRIGHT.
  *
- * $DragonFly: src/sys/netproto/atalk/ddp_usrreq.c,v 1.8 2004/06/06 19:16:12 dillon Exp $
+ * $DragonFly: src/sys/netproto/atalk/ddp_usrreq.c,v 1.9 2005/06/10 22:43:58 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -13,6 +13,7 @@
 #include <sys/socket.h>
 #include <sys/socketvar.h>
 #include <sys/protosw.h>
+#include <sys/thread2.h>
 #include <net/if.h>
 #include <net/netisr.h>
 #include <net/route.h>
@@ -41,7 +42,6 @@ ddp_attach(struct socket *so, int proto, struct pru_attach_info *ai)
 {
        struct ddpcb    *ddp;
        int             error = 0;
-       int             s;
        
 
        ddp = sotoddpcb( so );
@@ -49,9 +49,9 @@ ddp_attach(struct socket *so, int proto, struct pru_attach_info *ai)
            return( EINVAL);
        }
 
-       s = splnet();
+       crit_enter();
        error = at_pcballoc( so );
-       splx(s);
+       crit_exit();
        if (error) {
            return (error);
        }
@@ -62,15 +62,14 @@ static int
 ddp_detach(struct socket *so)
 {
        struct ddpcb    *ddp;
-       int             s;
        
        ddp = sotoddpcb( so );
        if ( ddp == NULL ) {
            return( EINVAL);
        }
-       s = splnet();
+       crit_enter();
        at_pcbdetach( so, ddp );
-       splx(s);
+       crit_exit();
        return(0);
 }
 
@@ -79,15 +78,14 @@ ddp_bind(struct socket *so, struct sockaddr *nam, struct thread *td)
 {
        struct ddpcb    *ddp;
        int             error = 0;
-       int             s;
        
        ddp = sotoddpcb( so );
        if ( ddp == NULL ) {
            return( EINVAL);
        }
-       s = splnet();
+       crit_enter();
        error = at_pcbsetaddr(ddp, nam, td);
-       splx(s);
+       crit_exit();
        return (error);
 }
     
@@ -96,7 +94,6 @@ ddp_connect(struct socket *so, struct sockaddr *nam, struct thread *td)
 {
        struct ddpcb    *ddp;
        int             error = 0;
-       int             s;
        
        ddp = sotoddpcb( so );
        if ( ddp == NULL ) {
@@ -107,9 +104,9 @@ ddp_connect(struct socket *so, struct sockaddr *nam, struct thread *td)
            return(EISCONN);
        }
 
-       s = splnet();
+       crit_enter();
        error = at_pcbconnect( ddp, nam, td );
-       splx(s);
+       crit_exit();
        if ( error == 0 )
            soisconnected( so );
        return(error);
@@ -120,7 +117,6 @@ ddp_disconnect(struct socket *so)
 {
 
        struct ddpcb    *ddp;
-       int             s;
        
        ddp = sotoddpcb( so );
        if ( ddp == NULL ) {
@@ -130,10 +126,10 @@ ddp_disconnect(struct socket *so)
            return(ENOTCONN);
        }
 
-       s = splnet();
+       crit_enter();
        at_pcbdisconnect( ddp );
        ddp->ddp_fsat.sat_addr.s_node = ATADDR_ANYNODE;
-       splx(s);
+       crit_exit();
        soisdisconnected( so );
        return(0);
 }
@@ -157,7 +153,6 @@ ddp_send(struct socket *so, int flags, struct mbuf *m, struct sockaddr *addr,
 {
        struct ddpcb    *ddp;
        int             error = 0;
-       int             s;
        
        ddp = sotoddpcb( so );
        if ( ddp == NULL ) {
@@ -173,9 +168,9 @@ ddp_send(struct socket *so, int flags, struct mbuf *m, struct sockaddr *addr,
                        return(EISCONN);
                }
 
-               s = splnet();
+               crit_enter();
                error = at_pcbconnect(ddp, addr, td);
-               splx( s );
+               crit_exit();
                if ( error ) {
                        return(error);
                }
@@ -185,12 +180,12 @@ ddp_send(struct socket *so, int flags, struct mbuf *m, struct sockaddr *addr,
                }
        }
 
-       s = splnet();
+       crit_enter();
        error = ddp_output( m, so );
        if ( addr ) {
            at_pcbdisconnect( ddp );
        }
-       splx(s);
+       crit_exit();
        return(error);
 }
 
@@ -198,16 +193,15 @@ static int
 ddp_abort(struct socket *so)
 {
        struct ddpcb    *ddp;
-       int             s;
        
        ddp = sotoddpcb( so );
        if ( ddp == NULL ) {
                return(EINVAL);
        }
        soisdisconnected( so );
-       s = splnet();
+       crit_enter();
        at_pcbdetach( so, ddp );
-       splx(s);
+       crit_exit();
        return(0);
 }
 
index 8f285ac..0ce1714 100644 (file)
@@ -30,7 +30,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/netncp/ncp_ncp.c,v 1.3 1999/10/29 10:21:07 bp Exp $
- * $DragonFly: src/sys/netproto/ncp/ncp_ncp.c,v 1.7 2005/02/17 14:00:00 joerg Exp $
+ * $DragonFly: src/sys/netproto/ncp/ncp_ncp.c,v 1.8 2005/06/10 22:43:59 dillon Exp $
  *
  * Core of NCP protocol
  */
@@ -44,6 +44,7 @@
 #include <sys/poll.h>
 #include <sys/signalvar.h>
 #include <sys/mbuf.h>
+#include <sys/thread2.h>
 
 #ifdef IPX
 #include <netproto/ipx/ipx.h>
@@ -180,7 +181,7 @@ ncp_sign_packet(struct ncp_conn *conn, struct ncp_rq *rqp, int *size) {
  */
 static int 
 ncp_do_request(struct ncp_conn *conn, struct ncp_rq *rqp) {
-       int error=EIO,len, dosend, plen = 0, gotpacket, s;
+       int error=EIO,len, dosend, plen = 0, gotpacket;
        struct socket *so;
        struct thread *td = conn->td;
        struct ncp_rqhdr *rq;
@@ -205,7 +206,7 @@ ncp_do_request(struct ncp_conn *conn, struct ncp_rq *rqp) {
        /*
         * Flush out replies on previous reqs
         */
-       s = splnet();
+       crit_enter();
        while (1/*so->so_rcv.sb_cc*/) {
                if (ncp_poll(so,POLLIN) == 0) break;
                if (ncp_sock_recv(so,&m,&len) != 0) break;
@@ -319,7 +320,7 @@ ncp_do_request(struct ncp_conn *conn, struct ncp_rq *rqp) {
                if (gotpacket) break;
                /* try to resend, or just wait */
        }
-       splx(s);
+       crit_exit();
        conn->seq++;
        if (error) {
                NCPSDEBUG("error=%d\n",error);
index b3e5a99..9405d69 100644 (file)
@@ -30,7 +30,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/netncp/ncp_sock.c,v 1.2 1999/10/12 10:36:59 bp Exp $
- * $DragonFly: src/sys/netproto/ncp/ncp_sock.c,v 1.10 2004/06/02 14:43:03 eirikn Exp $
+ * $DragonFly: src/sys/netproto/ncp/ncp_sock.c,v 1.11 2005/06/10 22:43:59 dillon Exp $
  *
  * Low level socket routines
  */
@@ -56,6 +56,7 @@
 #include <sys/syslog.h>
 #include <sys/mbuf.h>
 #include <net/route.h>
+#include <sys/thread2.h>
 
 #ifdef IPX
 #include <netproto/ipx/ipx.h>
@@ -84,7 +85,7 @@ static int ncp_soconnect(struct socket *so,struct sockaddr *target, struct threa
  */
 static int
 ncp_soconnect(struct socket *so,struct sockaddr *target, struct thread *td) {
-       int error,s;
+       int error;
 
        error = soconnect(so, (struct sockaddr*)target, td);
        if (error)
@@ -95,23 +96,23 @@ ncp_soconnect(struct socket *so,struct sockaddr *target, struct thread *td) {
         * that interruptible mounts don't hang here for a long time.
         */
        error = EIO;
-       s = splnet();
+       crit_enter();
        while ((so->so_state & SS_ISCONNECTING) && so->so_error == 0) {
                (void) tsleep((caddr_t)&so->so_timeo, 0, "ncpcon", 2 * hz);
                if ((so->so_state & SS_ISCONNECTING) &&
                    so->so_error == 0 /*&& rep &&*/) {
                        so->so_state &= ~SS_ISCONNECTING;
-                       splx(s);
+                       crit_exit();
                        goto bad;
                }
        }
        if (so->so_error) {
                error = so->so_error;
                so->so_error = 0;
-               splx(s);
+               crit_exit();
                goto bad;
        }
-               splx(s);
+       crit_exit();
        error=0;
 bad:
        return error;
@@ -201,7 +202,7 @@ ncp_sock_rselect(struct socket *so, struct thread *td,
 {
        struct timeval atv,rtv,ttv;
        struct proc *p = td->td_proc;
-       int s,timo,error=0;
+       int timo,error=0;
 
        KKASSERT(p);
 
@@ -230,14 +231,14 @@ retry:
                timevalsub(&ttv, &rtv);
                timo = tvtohz_high(&ttv);
        }
-       s = splhigh();
+       crit_enter();
        if ((p->p_flag & P_SELECT) == 0) {
-               splx(s);
+               crit_exit();
                goto retry;
        }
        p->p_flag &= ~P_SELECT;
        error = tsleep((caddr_t)&selwait, 0, "ncpslt", timo);
-       splx(s);
+       crit_exit();
 done:
        p->p_flag &= ~P_SELECT;
        if (error == ERESTART) {
@@ -430,13 +431,11 @@ ncp_watchdog(struct ncp_conn *conn) {
 
 void
 ncp_check_conn(struct ncp_conn *conn) {
-       int s;
-
        if (conn == NULL || !(conn->flags & NCPFL_ATTACHED))
                return;
-       s = splnet();
+       crit_enter();
        ncp_check_rq(conn);
-       splx(s);
+       crit_exit();
 #ifdef IPX
        ncp_watchdog(conn);
 #endif
index 149081c..eb93bba 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)idp_usrreq.c        8.1 (Berkeley) 6/10/93
  * $FreeBSD: src/sys/netns/idp_usrreq.c,v 1.9 1999/08/28 00:49:47 peter Exp $
- * $DragonFly: src/sys/netproto/ns/idp_usrreq.c,v 1.10 2005/01/23 13:21:44 joerg Exp $
+ * $DragonFly: src/sys/netproto/ns/idp_usrreq.c,v 1.11 2005/06/10 22:44:01 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -44,6 +44,7 @@
 #include <sys/socketvar.h>
 #include <sys/errno.h>
 #include <sys/stat.h>
+#include <sys/thread2.h>
 
 #include <net/if.h>
 #include <net/route.h>
@@ -91,16 +92,15 @@ idp_input(struct mbuf *m, ...)
        idp_ns.sns_addr = idp->idp_sna;
        if (ns_neteqnn(idp->idp_sna.x_net, ns_zeronet) && ifp) {
                struct ifaddr *ifa;
-               int s;
 
-               s = splimp();
+               crit_enter();
                TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link)
                        if (ifa->ifa_addr->sa_family == AF_NS) {
                                idp_ns.sns_addr.x_net =
                                        IA_SNS(ifa)->sns_addr.x_net;
                                break;
                        }
-               splx(s);
+               crit_exit();
        }
        nsp->nsp_rpt = idp->idp_pt;
        if ( ! (nsp->nsp_flags & NSP_RAWIN) ) {
@@ -530,7 +530,6 @@ idp_send(struct socket *so, int flags, struct mbuf *m,
        struct nspcb *nsp = sotonspcb(so);
        struct ns_addr laddr;
        int error;
-       int s;
 
        if (nsp == NULL)
                return(EINVAL);
@@ -539,7 +538,7 @@ idp_send(struct socket *so, int flags, struct mbuf *m,
                goto release;
        }
 
-       s = splnet();
+       crit_enter();
        if (addr) {
                laddr = nsp->nsp_laddr;
                if (!ns_nullhost(nsp->nsp_faddr))
@@ -561,7 +560,7 @@ idp_send(struct socket *so, int flags, struct mbuf *m,
                        nsp->nsp_laddr.x_port = laddr.x_port;
                }
        }
-       splx(s);
+       crit_exit();
 release:
        if (control)
                m_freem(control);
index cf6a639..d3f076f 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)ns.c        8.2 (Berkeley) 11/15/93
  * $FreeBSD: src/sys/netns/ns.c,v 1.9 1999/08/28 00:49:47 peter Exp $
- * $DragonFly: src/sys/netproto/ns/ns.c,v 1.9 2004/06/07 07:04:33 dillon Exp $
+ * $DragonFly: src/sys/netproto/ns/ns.c,v 1.10 2005/06/10 22:44:01 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -44,6 +44,7 @@
 #include <sys/errno.h>
 #include <sys/socket.h>
 #include <sys/socketvar.h>
+#include <sys/thread2.h>
 
 #include <net/if.h>
 #include <net/route.h>
@@ -270,7 +271,9 @@ ns_ifinit(ifp, ia, sns, scrub)
 {
        struct sockaddr_ns oldaddr;
        union ns_host *h = &ia->ia_addr.sns_addr.x_host;
-       int s = splimp(), error;
+       int error;
+
+       crit_enter();
 
        /*
         * Set up new addresses.
@@ -295,7 +298,7 @@ ns_ifinit(ifp, ia, sns, scrub)
                                                (caddr_t)ia,
                                                (struct ucred *)NULL))) {
                        ia->ia_addr = oldaddr;
-                       splx(s);
+                       crit_exit();
                        return (error);
                }
                ns_thishost = *h;
@@ -307,17 +310,17 @@ ns_ifinit(ifp, ia, sns, scrub)
                                                (caddr_t)ia,
                                                (struct ucred *)NULL))) {
                        ia->ia_addr = oldaddr;
-                       splx(s);
+                       crit_exit();
                        return (error);
                }
                if (!ns_hosteqnh(ns_thishost,*h)) {
                        ia->ia_addr = oldaddr;
-                       splx(s);
+                       crit_exit();
                        return (EINVAL);
                }
        } else {
                ia->ia_addr = oldaddr;
-               splx(s);
+               crit_exit();
                return (EINVAL);
        }
        ia->ia_ifa.ifa_metric = ifp->if_metric;
index d400bcb..4102019 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)ns_pcb.c    8.1 (Berkeley) 6/10/93
  * $FreeBSD: src/sys/netns/ns_pcb.c,v 1.9 1999/08/28 00:49:51 peter Exp $
- * $DragonFly: src/sys/netproto/ns/ns_pcb.c,v 1.12 2004/06/07 07:04:33 dillon Exp $
+ * $DragonFly: src/sys/netproto/ns/ns_pcb.c,v 1.13 2005/06/10 22:44:01 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -45,6 +45,7 @@
 #include <sys/protosw.h>
 #include <sys/module.h>
 #include <sys/malloc.h>
+#include <sys/thread2.h>
 
 #include <net/if.h>
 #include <net/route.h>
@@ -277,7 +278,8 @@ ns_pcbnotify(struct ns_addr *dst, int errno,
            void (*notify)(struct nspcb *), long param)
 {
        struct nspcb *nsp, *oinp;
-       int s = splimp();
+
+       crit_enter();
 
        for (nsp = (&nspcb)->nsp_next; nsp != (&nspcb);) {
                if (!ns_hosteq(*dst,nsp->nsp_faddr)) {
@@ -294,7 +296,7 @@ ns_pcbnotify(struct ns_addr *dst, int errno,
                oinp->nsp_notify_param = param;
                (*notify)(oinp);
        }
-       splx(s);
+       crit_exit();
 }
 
 #ifdef notdef
index 96aedd2..d79bbe5 100644 (file)
@@ -32,7 +32,7 @@
  *
  *     @(#)spp_usrreq.c        8.1 (Berkeley) 6/10/93
  * $FreeBSD: src/sys/netns/spp_usrreq.c,v 1.11 1999/08/28 00:49:53 peter Exp $
- * $DragonFly: src/sys/netproto/ns/spp_usrreq.c,v 1.15 2005/01/23 13:21:44 joerg Exp $
+ * $DragonFly: src/sys/netproto/ns/spp_usrreq.c,v 1.16 2005/06/10 22:44:01 dillon Exp $
  */
 
 #include <sys/param.h>
@@ -44,6 +44,7 @@
 #include <sys/socket.h>
 #include <sys/socketvar.h>
 #include <sys/errno.h>
+#include <sys/thread2.h>
 
 #include <net/if.h>
 #include <net/route.h>
@@ -1751,11 +1752,11 @@ spp_fasttimo(void)
 {
        struct nspcb *nsp;
        struct sppcb *cb;
-       int s = splnet();
 
+       crit_enter();
        nsp = nspcb.nsp_next;
-       if (nsp)
-       for (; nsp != &nspcb; nsp = nsp->nsp_next)
+       if (nsp) {
+           for (; nsp != &nspcb; nsp = nsp->nsp_next) {
                if ((cb = (struct sppcb *)nsp->nsp_pcb) &&
                    (cb->s_flags & SF_DELACK)) {
                        cb->s_flags &= ~SF_DELACK;
@@ -1763,7 +1764,9 @@ spp_fasttimo(void)
                        sppstat.spps_delack++;
                        (void) spp_output(cb, (struct mbuf *) 0);
                }
-       splx(s);
+           }
+       }
+       crit_exit();
 }
 
 /*
@@ -1776,15 +1779,15 @@ spp_slowtimo(void)
 {
        struct nspcb *ip, *ipnxt;
        struct sppcb *cb;
-       int s = splnet();
        int i;
 
        /*
         * Search through tcb's and update active timers.
         */
+       crit_enter();
        ip = nspcb.nsp_next;
        if (ip == 0) {
-               splx(s);
+               crit_exit();
                return;
        }
        while (ip != &nspcb) {
@@ -1806,7 +1809,7 @@ tpgone:
                ip = ipnxt;
        }
        spp_iss += SPP_ISSINCR/PR_SLOWHZ;               /* increment iss */
-       splx(s);
+       crit_exit();
 }
 /*
  * SPP timer processing.
index 913c665..9af6774 100644 (file)
@@ -30,7 +30,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/netsmb/smb_dev.c,v 1.2.2.1 2001/05/22 08:32:33 bp Exp $
- * $DragonFly: src/sys/netproto/smb/smb_dev.c,v 1.9 2004/05/19 22:53:01 dillon Exp $
+ * $DragonFly: src/sys/netproto/smb/smb_dev.c,v 1.10 2005/06/10 22:44:02 dillon Exp $
  */
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -48,6 +48,7 @@
 #include <sys/sysctl.h>
 #include <sys/uio.h>
 #include <sys/vnode.h>
+#include <sys/thread2.h>
 
 #include <net/if.h>
 
@@ -112,7 +113,6 @@ nsmb_dev_open(dev_t dev, int oflags, int devtype, d_thread_t *td)
        struct proc *p = td->td_proc;
        struct smb_dev *sdp;
        struct ucred *cred;
-       int s;
 
        KKASSERT(p != NULL);
        cred = p->p_ucred;
@@ -138,10 +138,10 @@ nsmb_dev_open(dev_t dev, int oflags, int devtype, d_thread_t *td)
        STAILQ_INIT(&sdp->sd_rplist);
        bzero(&sdp->sd_pollinfo, sizeof(struct selinfo));
 */
-       s = splimp();
+       crit_enter();
        sdp->sd_level = -1;
        sdp->sd_flags |= NSMBFL_OPEN;
-       splx(s);
+       crit_exit();
        return 0;
 }
 
@@ -152,12 +152,11 @@ nsmb_dev_close(dev_t dev, int flag, int fmt, d_thread_t *td)
        struct smb_vc *vcp;
        struct smb_share *ssp;
        struct smb_cred scred;
-       int s;
 
        SMB_CHECKMINOR(dev);
-       s = splimp();
+       crit_enter();
        if ((sdp->sd_flags & NSMBFL_OPEN) == 0) {
-               splx(s);
+               crit_exit();
                return EBADF;
        }
        smb_makescred(&scred, td, NULL);
@@ -173,7 +172,7 @@ nsmb_dev_close(dev_t dev, int flag, int fmt, d_thread_t *td)
 */
        dev->si_drv1 = NULL;
        free(sdp, M_NSMBDEV);
-       splx(s);
+       crit_exit();
        return 0;
 }
 
index 4660ecb..732f73c 100644 (file)
@@ -30,7 +30,7 @@
  * SUCH DAMAGE.
  *
  * $FreeBSD: src/sys/netsmb/smb_trantcp.c,v 1.3.2.1 2001/05/22 08:32:34 bp Exp $
- * $DragonFly: src/sys/netproto/smb/smb_trantcp.c,v 1.11 2004/06/06 19:16:14 dillon Exp $
+ * $DragonFly: src/sys/netproto/smb/smb_trantcp.c,v 1.12 2005/06/10 22:44:02 dillon Exp $
  */
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -46,6 +46,7 @@
 #include <sys/poll.h>
 #include <sys/uio.h>
 #include <sys/sysctl.h>
+#include <sys/thread2.h>
 
 #include <net/if.h>
 #include <net/route.h>
@@ -103,7 +104,7 @@ nbssn_rselect(struct nbpcb *nbp, struct timeval *tv, int events, struct thread *
 {
        struct proc *p = td->td_proc;
        struct timeval atv, rtv, ttv;
-       int s, timo, error;
+       int timo, error;
 
        if (tv) {
                atv = *tv;
@@ -131,14 +132,14 @@ retry:
                timevalsub(&ttv, &rtv);
                timo = tvtohz_high(&ttv);
        }
-       s = splhigh();
+       crit_enter();
        if ((p->p_flag & P_SELECT) == 0) {
-               splx(s);
+               crit_exit();
                goto retry;
        }
        p->p_flag &= ~P_SELECT;
        error = tsleep((caddr_t)&selwait, 0, "nbsel", timo);
-       splx(s);
+       crit_exit();
 done:
        p->p_flag &= ~P_SELECT;
        if (error == ERESTART)
@@ -197,7 +198,7 @@ static int
 nb_connect_in(struct nbpcb *nbp, struct sockaddr_in *to, struct thread *td)
 {
        struct socket *so;
-       int error, s;
+       int error;
 
        error = socreate(AF_INET, &so, SOCK_STREAM, IPPROTO_TCP, td);
        if (error)
@@ -219,23 +220,23 @@ nb_connect_in(struct nbpcb *nbp, struct sockaddr_in *to, struct thread *td)
        error = soconnect(so, (struct sockaddr*)to, td);
        if (error)
                goto bad;
-       s = splnet();
+       crit_enter();
        while ((so->so_state & SS_ISCONNECTING) && so->so_error == 0) {
                tsleep(&so->so_timeo, 0, "nbcon", 2 * hz);
                if ((so->so_state & SS_ISCONNECTING) && so->so_error == 0 &&
                        (error = nb_intr(nbp, td)) != 0) {
                        so->so_state &= ~SS_ISCONNECTING;
-                       splx(s);
+                       crit_exit();
                        goto bad;
                }
        }
        if (so->so_error) {
                error = so->so_error;
                so->so_error = 0;
-               splx(s);
+               crit_exit();
                goto bad;
        }
-       splx(s);
+       crit_exit();
        return 0;
 bad:
        smb_nbst_disconnect(nbp->nbp_vc, td);