summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/subr_mchain.c24
-rw-r--r--sys/kern/uipc_mbuf.c2
-rw-r--r--sys/kern/uipc_socket.c26
-rw-r--r--sys/kern/uipc_syscalls.c28
4 files changed, 28 insertions, 52 deletions
diff --git a/sys/kern/subr_mchain.c b/sys/kern/subr_mchain.c
index dc70af2..239564e 100644
--- a/sys/kern/subr_mchain.c
+++ b/sys/kern/subr_mchain.c
@@ -56,9 +56,7 @@ mb_init(struct mbchain *mbp)
{
struct mbuf *m;
- m = m_gethdr(M_TRYWAIT, MT_DATA);
- if (m == NULL)
- return ENOBUFS;
+ m = m_gethdr(M_WAIT, MT_DATA);
m->m_len = 0;
mb_initm(mbp, m);
return 0;
@@ -113,9 +111,7 @@ mb_reserve(struct mbchain *mbp, int size)
panic("mb_reserve: size = %d\n", size);
m = mbp->mb_cur;
if (mbp->mb_mleft < size) {
- mn = m_get(M_TRYWAIT, MT_DATA);
- if (mn == NULL)
- return NULL;
+ mn = m_get(M_WAIT, MT_DATA);
mbp->mb_cur = m->m_next = mn;
m = mn;
m->m_len = 0;
@@ -190,11 +186,9 @@ mb_put_mem(struct mbchain *mbp, c_caddr_t source, int size, int type)
while (size > 0) {
if (mleft == 0) {
- if (m->m_next == NULL) {
- m = m_getm(m, size, M_TRYWAIT, MT_DATA);
- if (m == NULL)
- return ENOBUFS;
- } else
+ if (m->m_next == NULL)
+ m = m_getm(m, size, M_WAIT, MT_DATA);
+ else
m = m->m_next;
mleft = M_TRAILINGSPACE(m);
continue;
@@ -295,9 +289,7 @@ md_init(struct mdchain *mdp)
{
struct mbuf *m;
- m = m_gethdr(M_TRYWAIT, MT_DATA);
- if (m == NULL)
- return ENOBUFS;
+ m = m_gethdr(M_WAIT, MT_DATA);
m->m_len = 0;
md_initm(mdp, m);
return 0;
@@ -503,9 +495,7 @@ md_get_mbuf(struct mdchain *mdp, int size, struct mbuf **ret)
{
struct mbuf *m = mdp->md_cur, *rm;
- rm = m_copym(m, mdp->md_pos - mtod(m, u_char*), size, M_TRYWAIT);
- if (rm == NULL)
- return EBADRPC;
+ rm = m_copym(m, mdp->md_pos - mtod(m, u_char*), size, M_WAIT);
md_get_mem(mdp, NULL, size, MB_MZERO);
*ret = rm;
return 0;
diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c
index 9015ec7..eff51eb 100644
--- a/sys/kern/uipc_mbuf.c
+++ b/sys/kern/uipc_mbuf.c
@@ -519,7 +519,7 @@ m_prepend(struct mbuf *m, int len, int how)
/*
* Make a copy of an mbuf chain starting "off0" bytes from the beginning,
* continuing for "len" bytes. If len is M_COPYALL, copy to end of mbuf.
- * The wait parameter is a choice of M_TRYWAIT/M_DONTWAIT from caller.
+ * The wait parameter is a choice of M_WAIT/M_DONTWAIT from caller.
* Note that the copy is read-only, because clusters are not copied,
* only their reference counts are incremented.
*/
diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c
index bbb4f89..4b25b58 100644
--- a/sys/kern/uipc_socket.c
+++ b/sys/kern/uipc_socket.c
@@ -860,16 +860,16 @@ sosend_copyin(struct uio *uio, struct mbuf **retmp, int atomic, long *space,
}
#else /* ZERO_COPY_SOCKETS */
if (top == NULL) {
- m = m_getcl(M_TRYWAIT, MT_DATA, M_PKTHDR);
+ m = m_getcl(M_WAIT, MT_DATA, M_PKTHDR);
m->m_pkthdr.len = 0;
m->m_pkthdr.rcvif = NULL;
} else
- m = m_getcl(M_TRYWAIT, MT_DATA, 0);
+ m = m_getcl(M_WAIT, MT_DATA, 0);
len = min(min(MCLBYTES, resid), *space);
#endif /* ZERO_COPY_SOCKETS */
} else {
if (top == NULL) {
- m = m_gethdr(M_TRYWAIT, MT_DATA);
+ m = m_gethdr(M_WAIT, MT_DATA);
m->m_pkthdr.len = 0;
m->m_pkthdr.rcvif = NULL;
@@ -881,7 +881,7 @@ sosend_copyin(struct uio *uio, struct mbuf **retmp, int atomic, long *space,
if (atomic && m && len < MHLEN)
MH_ALIGN(m, len);
} else {
- m = m_get(M_TRYWAIT, MT_DATA);
+ m = m_get(M_WAIT, MT_DATA);
len = min(min(MLEN, resid), *space);
}
}
@@ -1304,9 +1304,7 @@ soreceive_rcvoob(struct socket *so, struct uio *uio, int flags)
KASSERT(flags & MSG_OOB, ("soreceive_rcvoob: (flags & MSG_OOB) == 0"));
- m = m_get(M_TRYWAIT, MT_DATA);
- if (m == NULL)
- return (ENOBUFS);
+ m = m_get(M_WAIT, MT_DATA);
error = (*pr->pr_usrreqs->pru_rcvoob)(so, m, flags & MSG_PEEK);
if (error)
goto bad;
@@ -1718,11 +1716,11 @@ dontblock:
if (flags & MSG_DONTWAIT)
copy_flag = M_DONTWAIT;
else
- copy_flag = M_TRYWAIT;
- if (copy_flag == M_TRYWAIT)
+ copy_flag = M_WAIT;
+ if (copy_flag == M_WAIT)
SOCKBUF_UNLOCK(&so->so_rcv);
*mp = m_copym(m, 0, len, copy_flag);
- if (copy_flag == M_TRYWAIT)
+ if (copy_flag == M_WAIT)
SOCKBUF_LOCK(&so->so_rcv);
if (*mp == NULL) {
/*
@@ -2333,11 +2331,11 @@ soopt_getm(struct sockopt *sopt, struct mbuf **mp)
struct mbuf *m, *m_prev;
int sopt_size = sopt->sopt_valsize;
- MGET(m, sopt->sopt_td ? M_TRYWAIT : M_DONTWAIT, MT_DATA);
+ MGET(m, sopt->sopt_td ? M_WAIT : M_DONTWAIT, MT_DATA);
if (m == NULL)
return ENOBUFS;
if (sopt_size > MLEN) {
- MCLGET(m, sopt->sopt_td ? M_TRYWAIT : M_DONTWAIT);
+ MCLGET(m, sopt->sopt_td ? M_WAIT : M_DONTWAIT);
if ((m->m_flags & M_EXT) == 0) {
m_free(m);
return ENOBUFS;
@@ -2351,13 +2349,13 @@ soopt_getm(struct sockopt *sopt, struct mbuf **mp)
m_prev = m;
while (sopt_size) {
- MGET(m, sopt->sopt_td ? M_TRYWAIT : M_DONTWAIT, MT_DATA);
+ MGET(m, sopt->sopt_td ? M_WAIT : M_DONTWAIT, MT_DATA);
if (m == NULL) {
m_freem(*mp);
return ENOBUFS;
}
if (sopt_size > MLEN) {
- MCLGET(m, sopt->sopt_td != NULL ? M_TRYWAIT :
+ MCLGET(m, sopt->sopt_td != NULL ? M_WAIT :
M_DONTWAIT);
if ((m->m_flags & M_EXT) == 0) {
m_freem(m);
diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c
index 270c4d8..ab5cb5f 100644
--- a/sys/kern/uipc_syscalls.c
+++ b/sys/kern/uipc_syscalls.c
@@ -705,16 +705,11 @@ sendit(td, s, mp, flags)
if (mp->msg_flags == MSG_COMPAT) {
struct cmsghdr *cm;
- M_PREPEND(control, sizeof(*cm), M_TRYWAIT);
- if (control == 0) {
- error = ENOBUFS;
- goto bad;
- } else {
- cm = mtod(control, struct cmsghdr *);
- cm->cmsg_len = control->m_len;
- cm->cmsg_level = SOL_SOCKET;
- cm->cmsg_type = SCM_RIGHTS;
- }
+ M_PREPEND(control, sizeof(*cm), M_WAIT);
+ cm = mtod(control, struct cmsghdr *);
+ cm->cmsg_len = control->m_len;
+ cm->cmsg_level = SOL_SOCKET;
+ cm->cmsg_type = SCM_RIGHTS;
}
#endif
} else {
@@ -1627,16 +1622,9 @@ sockargs(mp, buf, buflen, type)
if ((u_int)buflen > MCLBYTES)
return (EINVAL);
}
- m = m_get(M_TRYWAIT, type);
- if (m == NULL)
- return (ENOBUFS);
- if ((u_int)buflen > MLEN) {
- MCLGET(m, M_TRYWAIT);
- if ((m->m_flags & M_EXT) == 0) {
- m_free(m);
- return (ENOBUFS);
- }
- }
+ m = m_get(M_WAIT, type);
+ if ((u_int)buflen > MLEN)
+ MCLGET(m, M_WAIT);
m->m_len = buflen;
error = copyin(buf, mtod(m, caddr_t), (u_int)buflen);
if (error)
OpenPOWER on IntegriCloud