diff options
author | bmilekic <bmilekic@FreeBSD.org> | 2000-12-21 21:44:31 +0000 |
---|---|---|
committer | bmilekic <bmilekic@FreeBSD.org> | 2000-12-21 21:44:31 +0000 |
commit | 4b6a7bddad70a11b35893cc1825a768e53fb28c7 (patch) | |
tree | cb3615d12a5b91954bedb7d2b4481c994b02b3d6 /sys/netinet6 | |
parent | 37eea88efd33920c8d4ef7e41923db5d5eec76cf (diff) | |
download | FreeBSD-src-4b6a7bddad70a11b35893cc1825a768e53fb28c7.zip FreeBSD-src-4b6a7bddad70a11b35893cc1825a768e53fb28c7.tar.gz |
* Rename M_WAIT mbuf subsystem flag to M_TRYWAIT.
This is because calls with M_WAIT (now M_TRYWAIT) may not wait
forever when nothing is available for allocation, and may end up
returning NULL. Hopefully we now communicate more of the right thing
to developers and make it very clear that it's necessary to check whether
calls with M_(TRY)WAIT also resulted in a failed allocation.
M_TRYWAIT basically means "try harder, block if necessary, but don't
necessarily wait forever." The time spent blocking is tunable with
the kern.ipc.mbuf_wait sysctl.
M_WAIT is now deprecated but still defined for the next little while.
* Fix a typo in a comment in mbuf.h
* Fix some code that was actually passing the mbuf subsystem's M_WAIT to
malloc(). Made it pass M_WAITOK instead. If we were ever to redefine the
value of the M_WAIT flag, this could have became a big problem.
Diffstat (limited to 'sys/netinet6')
-rw-r--r-- | sys/netinet6/ip6_fw.c | 8 | ||||
-rw-r--r-- | sys/netinet6/ip6_output.c | 4 | ||||
-rw-r--r-- | sys/netinet6/raw_ip6.c | 2 |
3 files changed, 7 insertions, 7 deletions
diff --git a/sys/netinet6/ip6_fw.c b/sys/netinet6/ip6_fw.c index f0f710f..6bcef8a 100644 --- a/sys/netinet6/ip6_fw.c +++ b/sys/netinet6/ip6_fw.c @@ -1045,11 +1045,11 @@ ip6_fw_ctl(int stage, struct mbuf **mm) if (stage == IPV6_FW_GET) { struct ip6_fw_chain *fcp = ip6_fw_chain.lh_first; - *mm = m = m_get(M_WAIT, MT_DATA); /* XXX */ + *mm = m = m_get(M_TRYWAIT, MT_DATA); /* XXX */ if (!m) return(ENOBUFS); if (sizeof *(fcp->rule) > MLEN) { - MCLGET(m, M_WAIT); + MCLGET(m, M_TRYWAIT); if ((m->m_flags & M_EXT) == 0) { m_free(m); return(ENOBUFS); @@ -1058,14 +1058,14 @@ ip6_fw_ctl(int stage, struct mbuf **mm) for (; fcp; fcp = fcp->chain.le_next) { memcpy(m->m_data, fcp->rule, sizeof *(fcp->rule)); m->m_len = sizeof *(fcp->rule); - m->m_next = m_get(M_WAIT, MT_DATA); /* XXX */ + m->m_next = m_get(M_TRYWAIT, MT_DATA); /* XXX */ if (!m->m_next) { m_freem(*mm); return(ENOBUFS); } m = m->m_next; if (sizeof *(fcp->rule) > MLEN) { - MCLGET(m, M_WAIT); + MCLGET(m, M_TRYWAIT); if ((m->m_flags & M_EXT) == 0) { m_freem(*mm); return(ENOBUFS); diff --git a/sys/netinet6/ip6_output.c b/sys/netinet6/ip6_output.c index f990d44..a898cf2 100644 --- a/sys/netinet6/ip6_output.c +++ b/sys/netinet6/ip6_output.c @@ -1330,7 +1330,7 @@ ip6_ctloutput(so, sopt) break; } /* XXX */ - MGET(m, sopt->sopt_p ? M_WAIT : M_DONTWAIT, MT_HEADER); + MGET(m, sopt->sopt_p ? M_TRYWAIT : M_DONTWAIT, MT_HEADER); if (m == 0) { error = ENOBUFS; break; @@ -1920,7 +1920,7 @@ ip6_getmoptions(optname, im6o, mp) { u_int *hlim, *loop, *ifindex; - *mp = m_get(M_WAIT, MT_HEADER); /*XXX*/ + *mp = m_get(M_TRYWAIT, MT_HEADER); /*XXX*/ switch (optname) { diff --git a/sys/netinet6/raw_ip6.c b/sys/netinet6/raw_ip6.c index 95c7d20..42f38fd 100644 --- a/sys/netinet6/raw_ip6.c +++ b/sys/netinet6/raw_ip6.c @@ -333,7 +333,7 @@ rip6_output(m, va_alist) code = icmp6->icmp6_code; } - M_PREPEND(m, sizeof(*ip6), M_WAIT); + M_PREPEND(m, sizeof(*ip6), M_TRYWAIT); ip6 = mtod(m, struct ip6_hdr *); /* |