summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--share/man/man9/mbuf.911
-rw-r--r--sys/contrib/ipfilter/netinet/ip_fil_freebsd.c6
-rw-r--r--sys/dev/an/if_an.c6
-rw-r--r--sys/dev/bge/if_bge.c3
-rw-r--r--sys/dev/ce/if_ce.c3
-rw-r--r--sys/dev/cm/smc90cx6.c5
-rw-r--r--sys/dev/cp/if_cp.c3
-rw-r--r--sys/dev/cs/if_cs.c3
-rw-r--r--sys/dev/ctau/if_ct.c3
-rw-r--r--sys/dev/ed/if_ed.c5
-rw-r--r--sys/dev/ex/if_ex.c3
-rw-r--r--sys/dev/fe/if_fe.c3
-rw-r--r--sys/dev/hifn/hifn7751.c6
-rw-r--r--sys/dev/ie/if_ie.c3
-rw-r--r--sys/dev/le/lance.c3
-rw-r--r--sys/dev/lmc/if_lmc.c3
-rw-r--r--sys/dev/mn/if_mn.c3
-rw-r--r--sys/dev/my/if_my.c6
-rw-r--r--sys/dev/pcn/if_pcn.c3
-rw-r--r--sys/dev/pdq/pdq_freebsd.h3
-rw-r--r--sys/dev/pdq/pdq_ifsubr.c3
-rw-r--r--sys/dev/pdq/pdqvar.h3
-rw-r--r--sys/dev/safe/safe.c6
-rw-r--r--sys/dev/sbni/if_sbni.c3
-rw-r--r--sys/dev/smc/if_smc.c3
-rw-r--r--sys/dev/sn/if_sn.c9
-rw-r--r--sys/dev/snc/dp83932.c3
-rw-r--r--sys/dev/ti/if_ti.c3
-rw-r--r--sys/dev/tl/if_tl.c3
-rw-r--r--sys/dev/usb/misc/udbp.c3
-rw-r--r--sys/dev/vx/if_vx.c3
-rw-r--r--sys/dev/wb/if_wb.c3
-rw-r--r--sys/dev/xe/if_xe.c3
-rw-r--r--sys/dev/xen/netfront/netfront.c3
-rw-r--r--sys/mips/adm5120/if_admsw.c6
-rw-r--r--sys/netgraph/atm/ngatmbase.c6
-rw-r--r--sys/netgraph/atm/sscop/ng_sscop_cust.h3
-rw-r--r--sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c3
-rw-r--r--sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c9
-rw-r--r--sys/netgraph/ng_vjc.c3
-rw-r--r--sys/netipsec/key.c15
-rw-r--r--sys/netipsec/keysock.c3
-rw-r--r--sys/sys/mbuf.h3
43 files changed, 64 insertions, 122 deletions
diff --git a/share/man/man9/mbuf.9 b/share/man/man9/mbuf.9
index 2bde56d3..f447b96 100644
--- a/share/man/man9/mbuf.9
+++ b/share/man/man9/mbuf.9
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd October 21, 2014
+.Dd January 5, 2015
.Dt MBUF 9
.Os
.\"
@@ -40,6 +40,7 @@
.Ss Mbuf allocation macros
.Fn MGET "struct mbuf *mbuf" "int how" "short type"
.Fn MGETHDR "struct mbuf *mbuf" "int how" "short type"
+.Ft int
.Fn MCLGET "struct mbuf *mbuf" "int how"
.Fo MEXTADD
.Fa "struct mbuf *mbuf"
@@ -436,10 +437,12 @@ Allocate and attach an
.Vt mbuf cluster
to
.Fa mbuf .
-If the macro fails, the
+On success, a non-zero value returned; otherwise, 0.
+Historically, consumers would check for success by testing the
.Dv M_EXT
-flag will not be set in
-.Fa mbuf .
+flag on the mbuf, but this is now discouraged to avoid unnecessary awareness
+of the implementation of external storage in protocol stacks and device
+drivers.
.It Fn M_ALIGN mbuf len
Set the pointer
.Fa mbuf->m_data
diff --git a/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c b/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c
index 8f8cb08..5515561 100644
--- a/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c
+++ b/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c
@@ -386,8 +386,7 @@ ipf_send_reset(fin)
if (m == NULL)
return -1;
if (sizeof(*tcp2) + hlen > MLEN) {
- MCLGET(m, M_NOWAIT);
- if ((m->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(m, M_NOWAIT))) {
FREE_MB_T(m);
return -1;
}
@@ -610,8 +609,7 @@ ipf_send_icmp_err(type, fin, dst)
code = icmptoicmp6unreach[code];
if (iclen + max_linkhdr + fin->fin_plen > avail) {
- MCLGET(m, M_NOWAIT);
- if ((m->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(m, M_NOWAIT))) {
FREE_MB_T(m);
return -1;
}
diff --git a/sys/dev/an/if_an.c b/sys/dev/an/if_an.c
index bee2a0c..3433cd5 100644
--- a/sys/dev/an/if_an.c
+++ b/sys/dev/an/if_an.c
@@ -943,8 +943,7 @@ an_rxeof(struct an_softc *sc)
if_inc_counter(ifp, IFCOUNTER_IERRORS, 1);
return;
}
- MCLGET(m, M_NOWAIT);
- if (!(m->m_flags & M_EXT)) {
+ if (!(MCLGET(m, M_NOWAIT))) {
m_freem(m);
if_inc_counter(ifp, IFCOUNTER_IERRORS, 1);
return;
@@ -1034,8 +1033,7 @@ an_rxeof(struct an_softc *sc)
if_inc_counter(ifp, IFCOUNTER_IERRORS, 1);
return;
}
- MCLGET(m, M_NOWAIT);
- if (!(m->m_flags & M_EXT)) {
+ if (!(MCLGET(m, M_NOWAIT))) {
m_freem(m);
if_inc_counter(ifp, IFCOUNTER_IERRORS, 1);
return;
diff --git a/sys/dev/bge/if_bge.c b/sys/dev/bge/if_bge.c
index 58f529d..af4fddb 100644
--- a/sys/dev/bge/if_bge.c
+++ b/sys/dev/bge/if_bge.c
@@ -1383,8 +1383,7 @@ bge_newbuf_jumbo(struct bge_softc *sc, int i)
if (m == NULL)
return (ENOBUFS);
- m_cljget(m, M_NOWAIT, MJUM9BYTES);
- if (!(m->m_flags & M_EXT)) {
+ if (m_cljget(m, M_NOWAIT, MJUM9BYTES) == NULL) {
m_freem(m);
return (ENOBUFS);
}
diff --git a/sys/dev/ce/if_ce.c b/sys/dev/ce/if_ce.c
index d0dd0c7..7d81720 100644
--- a/sys/dev/ce/if_ce.c
+++ b/sys/dev/ce/if_ce.c
@@ -307,8 +307,7 @@ static struct mbuf *makembuf (void *buf, unsigned len)
MGETHDR (m, M_NOWAIT, MT_DATA);
if (! m)
return 0;
- MCLGET (m, M_NOWAIT);
- if (! (m->m_flags & M_EXT)) {
+ if (!(MCLGET(m, M_NOWAIT))) {
m_freem (m);
return 0;
}
diff --git a/sys/dev/cm/smc90cx6.c b/sys/dev/cm/smc90cx6.c
index a1932ad..5607298 100644
--- a/sys/dev/cm/smc90cx6.c
+++ b/sys/dev/cm/smc90cx6.c
@@ -540,10 +540,7 @@ cm_srint_locked(vsc)
*/
if ((len + 2 + 2) > MHLEN) {
/* attach an mbuf cluster */
- MCLGET(m, M_NOWAIT);
-
- /* Insist on getting a cluster */
- if ((m->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(m, M_NOWAIT))) {
if_inc_counter(ifp, IFCOUNTER_IERRORS, 1);
goto cleanup;
}
diff --git a/sys/dev/cp/if_cp.c b/sys/dev/cp/if_cp.c
index 4e70838..3d07ef2 100644
--- a/sys/dev/cp/if_cp.c
+++ b/sys/dev/cp/if_cp.c
@@ -191,8 +191,7 @@ static struct mbuf *makembuf (void *buf, unsigned len)
MGETHDR (m, M_NOWAIT, MT_DATA);
if (! m)
return 0;
- MCLGET (m, M_NOWAIT);
- if (! (m->m_flags & M_EXT)) {
+ if (!(MCLGET (m, M_NOWAIT))) {
m_freem (m);
return 0;
}
diff --git a/sys/dev/cs/if_cs.c b/sys/dev/cs/if_cs.c
index 8ad50eb..a9b0d08 100644
--- a/sys/dev/cs/if_cs.c
+++ b/sys/dev/cs/if_cs.c
@@ -716,8 +716,7 @@ cs_get_packet(struct cs_softc *sc)
return (-1);
if (length > MHLEN) {
- MCLGET(m, M_NOWAIT);
- if (!(m->m_flags & M_EXT)) {
+ if (!(MCLGET(m, M_NOWAIT))) {
m_freem(m);
return (-1);
}
diff --git a/sys/dev/ctau/if_ct.c b/sys/dev/ctau/if_ct.c
index d0b68bc..2e9d2e2 100644
--- a/sys/dev/ctau/if_ct.c
+++ b/sys/dev/ctau/if_ct.c
@@ -194,8 +194,7 @@ static struct mbuf *makembuf (void *buf, u_int len)
MGETHDR (m, M_NOWAIT, MT_DATA);
if (! m)
return 0;
- MCLGET (m, M_NOWAIT);
- if (! (m->m_flags & M_EXT)) {
+ if (!(MCLGET(m, M_NOWAIT))) {
m_freem (m);
return 0;
}
diff --git a/sys/dev/ed/if_ed.c b/sys/dev/ed/if_ed.c
index 46524dd..be9d274 100644
--- a/sys/dev/ed/if_ed.c
+++ b/sys/dev/ed/if_ed.c
@@ -1323,10 +1323,7 @@ ed_get_packet(struct ed_softc *sc, bus_size_t buf, u_short len)
*/
if ((len + 2) > MHLEN) {
/* Attach an mbuf cluster */
- MCLGET(m, M_NOWAIT);
-
- /* Insist on getting a cluster */
- if ((m->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(m, M_NOWAIT))) {
m_freem(m);
return;
}
diff --git a/sys/dev/ex/if_ex.c b/sys/dev/ex/if_ex.c
index 4072351..5832168 100644
--- a/sys/dev/ex/if_ex.c
+++ b/sys/dev/ex/if_ex.c
@@ -745,8 +745,7 @@ ex_rx_intr(struct ex_softc *sc)
while (pkt_len > 0) {
if (pkt_len >= MINCLSIZE) {
- MCLGET(m, M_NOWAIT);
- if (m->m_flags & M_EXT) {
+ if (MCLGET(m, M_NOWAIT)) {
m->m_len = MCLBYTES;
} else {
m_freem(ipkt);
diff --git a/sys/dev/fe/if_fe.c b/sys/dev/fe/if_fe.c
index 2123dfc..4598b59 100644
--- a/sys/dev/fe/if_fe.c
+++ b/sys/dev/fe/if_fe.c
@@ -1880,8 +1880,7 @@ fe_get_packet (struct fe_softc * sc, u_short len)
/* Attach a cluster if this packet doesn't fit in a normal mbuf. */
if (len > MHLEN - NFS_MAGIC_OFFSET) {
- MCLGET(m, M_NOWAIT);
- if (!(m->m_flags & M_EXT)) {
+ if (!(MCLGET(m, M_NOWAIT))) {
m_freem(m);
return -1;
}
diff --git a/sys/dev/hifn/hifn7751.c b/sys/dev/hifn/hifn7751.c
index e9d47a1..8330d30 100644
--- a/sys/dev/hifn/hifn7751.c
+++ b/sys/dev/hifn/hifn7751.c
@@ -1890,8 +1890,7 @@ hifn_crypto(
goto err_srcmap;
}
if (totlen >= MINCLSIZE) {
- MCLGET(m0, M_NOWAIT);
- if ((m0->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(m0, M_NOWAIT))) {
hifnstats.hst_nomem_mcl++;
err = sc->sc_cmdu ? ERESTART : ENOMEM;
m_freem(m0);
@@ -1913,8 +1912,7 @@ hifn_crypto(
}
len = MLEN;
if (totlen >= MINCLSIZE) {
- MCLGET(m, M_NOWAIT);
- if ((m->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(m, M_NOWAIT))) {
hifnstats.hst_nomem_mcl++;
err = sc->sc_cmdu ? ERESTART : ENOMEM;
mlast->m_next = m;
diff --git a/sys/dev/ie/if_ie.c b/sys/dev/ie/if_ie.c
index 72e2559..dc7a868 100644
--- a/sys/dev/ie/if_ie.c
+++ b/sys/dev/ie/if_ie.c
@@ -728,8 +728,7 @@ ieget(struct ie_softc *sc, struct mbuf **mp)
m->m_len = MLEN;
}
if (resid >= MINCLSIZE) {
- MCLGET(m, M_NOWAIT);
- if (m->m_flags & M_EXT)
+ if (MCLGET(m, M_NOWAIT))
m->m_len = min(resid, MCLBYTES);
} else {
if (resid < m->m_len) {
diff --git a/sys/dev/le/lance.c b/sys/dev/le/lance.c
index 38be317..2b4202b 100644
--- a/sys/dev/le/lance.c
+++ b/sys/dev/le/lance.c
@@ -398,8 +398,7 @@ lance_get(struct lance_softc *sc, int boff, int totlen)
while (totlen > 0) {
if (totlen >= MINCLSIZE) {
- MCLGET(m, M_NOWAIT);
- if ((m->m_flags & M_EXT) == 0)
+ if (!(MCLGET(m, M_NOWAIT)))
goto bad;
len = MCLBYTES;
}
diff --git a/sys/dev/lmc/if_lmc.c b/sys/dev/lmc/if_lmc.c
index 9e1463b..3ca3d3e 100644
--- a/sys/dev/lmc/if_lmc.c
+++ b/sys/dev/lmc/if_lmc.c
@@ -2689,8 +2689,7 @@ rxintr_setup(softc_t *sc)
printf("%s: rxintr_setup: MGETHDR() failed\n", NAME_UNIT);
return 0;
}
- MCLGET(m, M_NOWAIT);
- if ((m->m_flags & M_EXT) == 0)
+ if (!(MCLGET(m, M_NOWAIT)))
{
m_freem(m);
sc->status.cntrs.rxdma++;
diff --git a/sys/dev/mn/if_mn.c b/sys/dev/mn/if_mn.c
index 63ae5f6..2f1ea5f 100644
--- a/sys/dev/mn/if_mn.c
+++ b/sys/dev/mn/if_mn.c
@@ -1165,8 +1165,7 @@ mn_rx_intr(struct mn_softc *sc, u_int32_t vector)
mn_free_desc(dp);
return; /* ENOBUFS */
}
- MCLGET(m, M_NOWAIT);
- if((m->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(m, M_NOWAIT))) {
mn_free_desc(dp);
m_freem(m);
return; /* ENOBUFS */
diff --git a/sys/dev/my/if_my.c b/sys/dev/my/if_my.c
index e94e9ab..e2430c1 100644
--- a/sys/dev/my/if_my.c
+++ b/sys/dev/my/if_my.c
@@ -1085,8 +1085,7 @@ my_newbuf(struct my_softc * sc, struct my_chain_onefrag * c)
"no memory for rx list -- packet dropped!\n");
return (ENOBUFS);
}
- MCLGET(m_new, M_NOWAIT);
- if (!(m_new->m_flags & M_EXT)) {
+ if (!(MCLGET(m_new, M_NOWAIT))) {
device_printf(sc->my_dev,
"no memory for rx list -- packet dropped!\n");
m_freem(m_new);
@@ -1352,8 +1351,7 @@ my_encap(struct my_softc * sc, struct my_chain * c, struct mbuf * m_head)
return (1);
}
if (m_head->m_pkthdr.len > MHLEN) {
- MCLGET(m_new, M_NOWAIT);
- if (!(m_new->m_flags & M_EXT)) {
+ if (!(MCLGET(m_new, M_NOWAIT))) {
m_freem(m_new);
device_printf(sc->my_dev, "no memory for tx list");
return (1);
diff --git a/sys/dev/pcn/if_pcn.c b/sys/dev/pcn/if_pcn.c
index d3121a1..d63d4aa 100644
--- a/sys/dev/pcn/if_pcn.c
+++ b/sys/dev/pcn/if_pcn.c
@@ -803,8 +803,7 @@ pcn_newbuf(sc, idx, m)
if (m_new == NULL)
return(ENOBUFS);
- MCLGET(m_new, M_NOWAIT);
- if (!(m_new->m_flags & M_EXT)) {
+ if (!(MCLGET(m_new, M_NOWAIT))) {
m_freem(m_new);
return(ENOBUFS);
}
diff --git a/sys/dev/pdq/pdq_freebsd.h b/sys/dev/pdq/pdq_freebsd.h
index 78eeef9..a556b36 100644
--- a/sys/dev/pdq/pdq_freebsd.h
+++ b/sys/dev/pdq/pdq_freebsd.h
@@ -190,8 +190,7 @@ typedef struct _pdq_os_ctx_t {
PDQ_OS_DATABUF_T *x_m0; \
MGETHDR(x_m0, M_NOWAIT, MT_DATA); \
if (x_m0 != NULL) { \
- MCLGET(x_m0, M_NOWAIT); \
- if ((x_m0->m_flags & M_EXT) == 0) { \
+ if (!(MCLGET(x_m0, M_NOWAIT))) { \
m_free(x_m0); \
(b) = NULL; \
} else { \
diff --git a/sys/dev/pdq/pdq_ifsubr.c b/sys/dev/pdq/pdq_ifsubr.c
index 50619cb..f8df3a7 100644
--- a/sys/dev/pdq/pdq_ifsubr.c
+++ b/sys/dev/pdq/pdq_ifsubr.c
@@ -748,8 +748,7 @@ pdq_os_databuf_alloc(
printf("%s: can't alloc small buf\n", sc->sc_dev.dv_xname);
return NULL;
}
- MCLGET(m, M_NOWAIT);
- if ((m->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(m, M_NOWAIT))) {
printf("%s: can't alloc cluster\n", sc->sc_dev.dv_xname);
m_free(m);
return NULL;
diff --git a/sys/dev/pdq/pdqvar.h b/sys/dev/pdq/pdqvar.h
index 7eb6324..db53273 100644
--- a/sys/dev/pdq/pdqvar.h
+++ b/sys/dev/pdq/pdqvar.h
@@ -216,8 +216,7 @@ typedef struct mbuf PDQ_OS_DATABUF_T;
PDQ_OS_DATABUF_T *x_m0; \
MGETHDR(x_m0, M_NOWAIT, MT_DATA); \
if (x_m0 != NULL) { \
- MCLGET(x_m0, M_NOWAIT); \
- if ((x_m0->m_flags & M_EXT) == 0) { \
+ if (!(MCLGET(x_m0, M_NOWAIT))) { \
m_free(x_m0); \
(b) = NULL; \
} else { \
diff --git a/sys/dev/safe/safe.c b/sys/dev/safe/safe.c
index cfd00b6..9b91ed0 100644
--- a/sys/dev/safe/safe.c
+++ b/sys/dev/safe/safe.c
@@ -1328,8 +1328,7 @@ safe_process(device_t dev, struct cryptop *crp, int hint)
goto errout;
}
if (totlen >= MINCLSIZE) {
- MCLGET(m, M_NOWAIT);
- if ((m->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(m, M_NOWAIT))) {
m_free(m);
safestats.st_nomcl++;
err = sc->sc_nqchip ?
@@ -1355,8 +1354,7 @@ safe_process(device_t dev, struct cryptop *crp, int hint)
len = MLEN;
}
if (top && totlen >= MINCLSIZE) {
- MCLGET(m, M_NOWAIT);
- if ((m->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(m, M_NOWAIT))) {
*mp = m;
m_freem(top);
safestats.st_nomcl++;
diff --git a/sys/dev/sbni/if_sbni.c b/sys/dev/sbni/if_sbni.c
index c459ded..03200ef 100644
--- a/sys/dev/sbni/if_sbni.c
+++ b/sys/dev/sbni/if_sbni.c
@@ -878,8 +878,7 @@ get_rx_buf(struct sbni_softc *sc)
*/
if (ETHER_MAX_LEN + 2 > MHLEN) {
/* Attach an mbuf cluster */
- MCLGET(m, M_NOWAIT);
- if ((m->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(m, M_NOWAIT))) {
m_freem(m);
return (0);
}
diff --git a/sys/dev/smc/if_smc.c b/sys/dev/smc/if_smc.c
index 8ba7210..af8a5bd 100644
--- a/sys/dev/smc/if_smc.c
+++ b/sys/dev/smc/if_smc.c
@@ -693,8 +693,7 @@ smc_task_rx(void *context, int pending)
if (m == NULL) {
break;
}
- MCLGET(m, M_NOWAIT);
- if ((m->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(m, M_NOWAIT))) {
m_freem(m);
break;
}
diff --git a/sys/dev/sn/if_sn.c b/sys/dev/sn/if_sn.c
index 7350537..26e60bc 100644
--- a/sys/dev/sn/if_sn.c
+++ b/sys/dev/sn/if_sn.c
@@ -1065,14 +1065,9 @@ read_another:
m->m_pkthdr.len = m->m_len = packet_length;
/*
- * Attach an mbuf cluster
+ * Attach an mbuf cluster.
*/
- MCLGET(m, M_NOWAIT);
-
- /*
- * Insist on getting a cluster
- */
- if ((m->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(m, M_NOWAIT))) {
m_freem(m);
if_inc_counter(ifp, IFCOUNTER_IERRORS, 1);
printf("sn: snread() kernel memory allocation problem\n");
diff --git a/sys/dev/snc/dp83932.c b/sys/dev/snc/dp83932.c
index d4e062a..a496b67 100644
--- a/sys/dev/snc/dp83932.c
+++ b/sys/dev/snc/dp83932.c
@@ -1129,8 +1129,7 @@ sonic_get(struct snc_softc *sc, u_int32_t pkt, int datalen)
len = MLEN;
}
if (datalen >= MINCLSIZE) {
- MCLGET(m, M_NOWAIT);
- if ((m->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(m, M_NOWAIT))) {
if (top) m_freem(top);
return (0);
}
diff --git a/sys/dev/ti/if_ti.c b/sys/dev/ti/if_ti.c
index 7d0fc9d..0405020 100644
--- a/sys/dev/ti/if_ti.c
+++ b/sys/dev/ti/if_ti.c
@@ -1596,8 +1596,7 @@ ti_newbuf_jumbo(struct ti_softc *sc, int idx, struct mbuf *m_old)
"failed -- packet dropped!\n");
goto nobufs;
}
- MCLGET(m[NPAYLOAD], M_NOWAIT);
- if ((m[NPAYLOAD]->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(m[NPAYLOAD], M_NOWAIT))) {
device_printf(sc->ti_dev, "mbuf allocation failed "
"-- packet dropped!\n");
goto nobufs;
diff --git a/sys/dev/tl/if_tl.c b/sys/dev/tl/if_tl.c
index 8535b04..455dd38 100644
--- a/sys/dev/tl/if_tl.c
+++ b/sys/dev/tl/if_tl.c
@@ -1813,8 +1813,7 @@ tl_encap(sc, c, m_head)
return(1);
}
if (m_head->m_pkthdr.len > MHLEN) {
- MCLGET(m_new, M_NOWAIT);
- if (!(m_new->m_flags & M_EXT)) {
+ if (!(MCLGET(m_new, M_NOWAIT))) {
m_freem(m_new);
if_printf(ifp, "no memory for tx list\n");
return(1);
diff --git a/sys/dev/usb/misc/udbp.c b/sys/dev/usb/misc/udbp.c
index fc0d850..8140170 100644
--- a/sys/dev/usb/misc/udbp.c
+++ b/sys/dev/usb/misc/udbp.c
@@ -417,9 +417,8 @@ udbp_bulk_read_callback(struct usb_xfer *xfer, usb_error_t error)
if (m == NULL) {
goto tr_setup;
}
- MCLGET(m, M_NOWAIT);
- if (!(m->m_flags & M_EXT)) {
+ if (!(MCLGET(m, M_NOWAIT))) {
m_freem(m);
goto tr_setup;
}
diff --git a/sys/dev/vx/if_vx.c b/sys/dev/vx/if_vx.c
index 7d852e9..47a6cd9 100644
--- a/sys/dev/vx/if_vx.c
+++ b/sys/dev/vx/if_vx.c
@@ -865,8 +865,7 @@ vx_get(struct vx_softc *sc, u_int totlen)
len = MLEN;
}
if (totlen >= MINCLSIZE) {
- MCLGET(m, M_NOWAIT);
- if (m->m_flags & M_EXT)
+ if (MCLGET(m, M_NOWAIT))
len = MCLBYTES;
}
len = min(totlen, len);
diff --git a/sys/dev/wb/if_wb.c b/sys/dev/wb/if_wb.c
index 01090aa..4215d9e 100644
--- a/sys/dev/wb/if_wb.c
+++ b/sys/dev/wb/if_wb.c
@@ -1194,8 +1194,7 @@ wb_encap(sc, c, m_head)
if (m_new == NULL)
return(1);
if (m_head->m_pkthdr.len > MHLEN) {
- MCLGET(m_new, M_NOWAIT);
- if (!(m_new->m_flags & M_EXT)) {
+ if (!(MCLGET(m_new, M_NOWAIT))) {
m_freem(m_new);
return(1);
}
diff --git a/sys/dev/xe/if_xe.c b/sys/dev/xe/if_xe.c
index bcde27f..4a7aa6e 100644
--- a/sys/dev/xe/if_xe.c
+++ b/sys/dev/xe/if_xe.c
@@ -765,8 +765,7 @@ xe_rxintr(struct xe_softc *scp, uint8_t rst0)
}
if (len + 3 > MHLEN) {
- MCLGET(mbp, M_NOWAIT);
- if ((mbp->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(mbp, M_NOWAIT))) {
m_freem(mbp);
if_inc_counter(ifp, IFCOUNTER_IQDROPS, 1);
continue;
diff --git a/sys/dev/xen/netfront/netfront.c b/sys/dev/xen/netfront/netfront.c
index c3c8d92..440c189 100644
--- a/sys/dev/xen/netfront/netfront.c
+++ b/sys/dev/xen/netfront/netfront.c
@@ -822,8 +822,7 @@ network_alloc_rx_buffers(struct netfront_info *sc)
goto no_mbuf;
}
- m_cljget(m_new, M_NOWAIT, MJUMPAGESIZE);
- if ((m_new->m_flags & M_EXT) == 0) {
+ if (m_cljget(m_new, M_NOWAIT, MJUMPAGESIZE) == NULL) {
printf("%s: m_cljget failed\n", __func__);
m_freem(m_new);
diff --git a/sys/mips/adm5120/if_admsw.c b/sys/mips/adm5120/if_admsw.c
index 11f96b5..65f522f 100644
--- a/sys/mips/adm5120/if_admsw.c
+++ b/sys/mips/adm5120/if_admsw.c
@@ -655,8 +655,7 @@ admsw_start(struct ifnet *ifp)
break;
}
if (m0->m_pkthdr.len > MHLEN) {
- MCLGET(m, M_NOWAIT);
- if ((m->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(m, M_NOWAIT))) {
device_printf(sc->sc_dev,
"unable to allocate Tx cluster\n");
m_freem(m);
@@ -1227,8 +1226,7 @@ admsw_add_rxbuf(struct admsw_softc *sc, int idx, int high)
if (m == NULL)
return (ENOBUFS);
- MCLGET(m, M_NOWAIT);
- if ((m->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(m, M_NOWAIT))) {
m_freem(m);
return (ENOBUFS);
}
diff --git a/sys/netgraph/atm/ngatmbase.c b/sys/netgraph/atm/ngatmbase.c
index c5b0ced..a5f1027 100644
--- a/sys/netgraph/atm/ngatmbase.c
+++ b/sys/netgraph/atm/ngatmbase.c
@@ -151,8 +151,7 @@ uni_msg_pack_mbuf(struct uni_msg *msg, void *hdr, size_t hdrlen)
} else {
if ((n = uni_msg_len(msg)) > MHLEN) {
- MCLGET(m0, M_NOWAIT);
- if (!(m0->m_flags & M_EXT))
+ if (!(MCLGET(m0, M_NOWAIT)))
goto drop;
if (n > MCLBYTES)
n = MCLBYTES;
@@ -173,8 +172,7 @@ uni_msg_pack_mbuf(struct uni_msg *msg, void *hdr, size_t hdrlen)
last = m;
if (n > MLEN) {
- MCLGET(m, M_NOWAIT);
- if (!(m->m_flags & M_EXT))
+ if (!(MCLGET(m, M_NOWAIT)))
goto drop;
if (n > MCLBYTES)
n = MCLBYTES;
diff --git a/sys/netgraph/atm/sscop/ng_sscop_cust.h b/sys/netgraph/atm/sscop/ng_sscop_cust.h
index a1d839a..2c4e0de 100644
--- a/sys/netgraph/atm/sscop/ng_sscop_cust.h
+++ b/sys/netgraph/atm/sscop/ng_sscop_cust.h
@@ -327,8 +327,7 @@ ng_sscop_mbuf_alloc(size_t n) \
m->m_len = 0; \
m->m_pkthdr.len = 0; \
if (n > MHLEN) { \
- MCLGET(m, M_NOWAIT); \
- if (!(m->m_flags & M_EXT)){ \
+ if (!(MCLGET(m, M_NOWAIT))){ \
m_free(m); \
m = NULL; \
} \
diff --git a/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c b/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c
index 9b174bb..d7cff74 100644
--- a/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c
+++ b/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c
@@ -814,8 +814,7 @@ bt3c_receive(bt3c_softc_p sc)
break; /* XXX lost of sync */
}
- MCLGET(sc->m, M_NOWAIT);
- if (!(sc->m->m_flags & M_EXT)) {
+ if (!(MCLGET(sc->m, M_NOWAIT))) {
NG_FREE_M(sc->m);
NG_BT3C_ERR(sc->dev, "Could not get cluster\n");
diff --git a/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c b/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c
index 2488d06..f34c708 100644
--- a/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c
+++ b/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c
@@ -816,8 +816,7 @@ ubt_intr_read_callback(struct usb_xfer *xfer, usb_error_t error)
goto submit_next;
}
- MCLGET(m, M_NOWAIT);
- if (!(m->m_flags & M_EXT)) {
+ if (!(MCLGET(m, M_NOWAIT))) {
UBT_STAT_IERROR(sc);
goto submit_next;
}
@@ -916,8 +915,7 @@ ubt_bulk_read_callback(struct usb_xfer *xfer, usb_error_t error)
goto submit_next;
}
- MCLGET(m, M_NOWAIT);
- if (!(m->m_flags & M_EXT)) {
+ if (!(MCLGET(m, M_NOWAIT))) {
UBT_STAT_IERROR(sc);
goto submit_next;
}
@@ -1126,8 +1124,7 @@ ubt_isoc_read_one_frame(struct usb_xfer *xfer, int frame_no)
return (-1); /* XXX out of sync! */
}
- MCLGET(m, M_NOWAIT);
- if (!(m->m_flags & M_EXT)) {
+ if (!(MCLGET(m, M_NOWAIT))) {
UBT_STAT_IERROR(sc);
NG_FREE_M(m);
return (-1); /* XXX out of sync! */
diff --git a/sys/netgraph/ng_vjc.c b/sys/netgraph/ng_vjc.c
index e1b76b5..e689a10 100644
--- a/sys/netgraph/ng_vjc.c
+++ b/sys/netgraph/ng_vjc.c
@@ -484,8 +484,7 @@ ng_vjc_rcvdata(hook_p hook, item_p item)
hm->m_len = 0;
hm->m_pkthdr.rcvif = NULL;
if (hlen > MHLEN) { /* unlikely, but can happen */
- MCLGET(hm, M_NOWAIT);
- if ((hm->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(hm, M_NOWAIT))) {
m_freem(hm);
priv->slc.sls_errorin++;
NG_FREE_M(m);
diff --git a/sys/netipsec/key.c b/sys/netipsec/key.c
index b9bcd59..a4e8a25 100644
--- a/sys/netipsec/key.c
+++ b/sys/netipsec/key.c
@@ -2153,8 +2153,7 @@ key_spddelete2(struct socket *so, struct mbuf *m,
MGETHDR(n, M_NOWAIT, MT_DATA);
if (n && len > MHLEN) {
- MCLGET(n, M_NOWAIT);
- if ((n->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(n, M_NOWAIT))) {
m_freem(n);
n = NULL;
}
@@ -3496,8 +3495,7 @@ key_setsadbmsg(u_int8_t type, u_int16_t tlen, u_int8_t satype, u_int32_t seq,
return NULL;
MGETHDR(m, M_NOWAIT, MT_DATA);
if (m && len > MHLEN) {
- MCLGET(m, M_NOWAIT);
- if ((m->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(m, M_NOWAIT))) {
m_freem(m);
m = NULL;
}
@@ -4694,8 +4692,7 @@ key_getspi(struct socket *so, struct mbuf *m, const struct sadb_msghdr *mhp)
MGETHDR(n, M_NOWAIT, MT_DATA);
if (len > MHLEN) {
- MCLGET(n, M_NOWAIT);
- if ((n->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(n, M_NOWAIT))) {
m_freem(n);
n = NULL;
}
@@ -6628,8 +6625,7 @@ key_register(struct socket *so, struct mbuf *m, const struct sadb_msghdr *mhp)
MGETHDR(n, M_NOWAIT, MT_DATA);
if (len > MHLEN) {
- MCLGET(n, M_NOWAIT);
- if ((n->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(n, M_NOWAIT))) {
m_freem(n);
n = NULL;
}
@@ -7187,8 +7183,7 @@ key_parse(struct mbuf *m, struct socket *so)
MGETHDR(n, M_NOWAIT, MT_DATA);
if (n && m->m_pkthdr.len > MHLEN) {
- MCLGET(n, M_NOWAIT);
- if ((n->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(n, M_NOWAIT))) {
m_free(n);
n = NULL;
}
diff --git a/sys/netipsec/keysock.c b/sys/netipsec/keysock.c
index 6deea35..605d79c 100644
--- a/sys/netipsec/keysock.c
+++ b/sys/netipsec/keysock.c
@@ -223,8 +223,7 @@ key_sendup(struct socket *so, struct sadb_msg *msg, u_int len, int target)
n->m_len = MLEN;
}
if (tlen >= MCLBYTES) { /*XXX better threshold? */
- MCLGET(n, M_NOWAIT);
- if ((n->m_flags & M_EXT) == 0) {
+ if (!(MCLGET(n, M_NOWAIT))) {
m_free(n);
m_freem(m);
PFKEYSTAT_INC(in_nomem);
diff --git a/sys/sys/mbuf.h b/sys/sys/mbuf.h
index b74e957..600bdee 100644
--- a/sys/sys/mbuf.h
+++ b/sys/sys/mbuf.h
@@ -667,7 +667,7 @@ m_getcl(int how, short type, int flags)
return (uma_zalloc_arg(zone_pack, &args, how));
}
-static __inline void
+static __inline int
m_clget(struct mbuf *m, int how)
{
@@ -683,6 +683,7 @@ m_clget(struct mbuf *m, int how)
zone_drain(zone_pack);
uma_zalloc_arg(zone_clust, m, how);
}
+ return (m->m_flags & M_EXT);
}
/*
OpenPOWER on IntegriCloud