diff --git a/sys/kern/uipc_sockbuf.c b/sys/kern/uipc_sockbuf.c index 9f5da29644e0..16ee01e75d56 100644 --- a/sys/kern/uipc_sockbuf.c +++ b/sys/kern/uipc_sockbuf.c @@ -189,7 +189,7 @@ sonewconn(head, connstatus) if (head->so_qlen > 3 * head->so_qlimit / 2) return ((struct socket *)0); - so = soalloc(0); + so = soalloc(M_NOWAIT); if (so == NULL) return ((struct socket *)0); if ((head->so_options & SO_ACCEPTFILTER) != 0) diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index 683bc0d1b3a7..d0bd8afdf039 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -128,21 +128,14 @@ SYSCTL_INT(_kern_ipc_zero_copy, OID_AUTO, send, CTLFLAG_RW, * soalloc() returns a socket with a ref count of 0. */ struct socket * -soalloc(waitok) - int waitok; +soalloc(int mflags) { struct socket *so; #ifdef MAC int error; #endif - int flag; - if (waitok == 1) - flag = M_WAITOK; - else - flag = M_NOWAIT; - flag |= M_ZERO; - so = uma_zalloc(socket_zone, flag); + so = uma_zalloc(socket_zone, mflags | M_ZERO); if (so) { #ifdef MAC error = mac_init_socket(so, flag); @@ -195,7 +188,7 @@ socreate(dom, aso, type, proto, cred, td) if (prp->pr_type != type) return (EPROTOTYPE); - so = soalloc(1); + so = soalloc(M_WAITOK); if (so == NULL) return (ENOBUFS); diff --git a/sys/kern/uipc_socket2.c b/sys/kern/uipc_socket2.c index 9f5da29644e0..16ee01e75d56 100644 --- a/sys/kern/uipc_socket2.c +++ b/sys/kern/uipc_socket2.c @@ -189,7 +189,7 @@ sonewconn(head, connstatus) if (head->so_qlen > 3 * head->so_qlimit / 2) return ((struct socket *)0); - so = soalloc(0); + so = soalloc(M_NOWAIT); if (so == NULL) return ((struct socket *)0); if ((head->so_options & SO_ACCEPTFILTER) != 0) diff --git a/sys/sys/socketvar.h b/sys/sys/socketvar.h index cdb5942cd794..b1b9e16db42a 100644 --- a/sys/sys/socketvar.h +++ b/sys/sys/socketvar.h @@ -378,8 +378,8 @@ int sbwait(struct sockbuf *sb); int sb_lock(struct sockbuf *sb); int soabort(struct socket *so); int soaccept(struct socket *so, struct sockaddr **nam); +struct socket *soalloc(int mflags); int socheckuid(struct socket *so, uid_t uid); -struct socket *soalloc(int waitok); int sobind(struct socket *so, struct sockaddr *nam, struct thread *td); void socantrcvmore(struct socket *so); void socantsendmore(struct socket *so);