Date: Tue, 6 Jan 2015 12:59:38 +0000 (UTC) From: Robert Watson <rwatson@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r276750 - in head: share/man/man9 sys/contrib/ipfilter/netinet sys/dev/an sys/dev/bge sys/dev/ce sys/dev/cm sys/dev/cp sys/dev/cs sys/dev/ctau sys/dev/ed sys/dev/ex sys/dev/fe sys/dev/h... Message-ID: <201501061259.t06CxcTc096488@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: rwatson Date: Tue Jan 6 12:59:37 2015 New Revision: 276750 URL: https://svnweb.freebsd.org/changeset/base/276750 Log: In order to reduce use of M_EXT outside of the mbuf allocator and socket-buffer implementations, introduce a return value for MCLGET() (and m_cljget() that underlies it) to allow the caller to avoid testing M_EXT itself. Update all callers to use the return value. With this change, very few network device drivers remain aware of M_EXT; the primary exceptions lie in mbuf-chain pretty printers for debugging, and in a few cases, custom mbuf and cluster allocation implementations. NB: This is a difficult-to-test change as it touches many drivers for which I don't have physical devices. Instead we've gone for intensive review, but further post-commit review would definitely be appreciated to spot errors where changes could not easily be made mechanically, but were largely mechanical in nature. Differential Revision: https://reviews.freebsd.org/D1440 Reviewed by: adrian, bz, gnn Sponsored by: EMC / Isilon Storage Division Modified: head/share/man/man9/mbuf.9 head/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c head/sys/dev/an/if_an.c head/sys/dev/bge/if_bge.c head/sys/dev/ce/if_ce.c head/sys/dev/cm/smc90cx6.c head/sys/dev/cp/if_cp.c head/sys/dev/cs/if_cs.c head/sys/dev/ctau/if_ct.c head/sys/dev/ed/if_ed.c head/sys/dev/ex/if_ex.c head/sys/dev/fe/if_fe.c head/sys/dev/hifn/hifn7751.c head/sys/dev/ie/if_ie.c head/sys/dev/le/lance.c head/sys/dev/lmc/if_lmc.c head/sys/dev/mn/if_mn.c head/sys/dev/my/if_my.c head/sys/dev/pcn/if_pcn.c head/sys/dev/pdq/pdq_freebsd.h head/sys/dev/pdq/pdq_ifsubr.c head/sys/dev/pdq/pdqvar.h head/sys/dev/safe/safe.c head/sys/dev/sbni/if_sbni.c head/sys/dev/smc/if_smc.c head/sys/dev/sn/if_sn.c head/sys/dev/snc/dp83932.c head/sys/dev/ti/if_ti.c head/sys/dev/tl/if_tl.c head/sys/dev/usb/misc/udbp.c head/sys/dev/vx/if_vx.c head/sys/dev/wb/if_wb.c head/sys/dev/xe/if_xe.c head/sys/dev/xen/netfront/netfront.c head/sys/mips/adm5120/if_admsw.c head/sys/netgraph/atm/ngatmbase.c head/sys/netgraph/atm/sscop/ng_sscop_cust.h head/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c head/sys/netgraph/ng_vjc.c head/sys/netipsec/key.c head/sys/netipsec/keysock.c head/sys/sys/mbuf.h Modified: head/share/man/man9/mbuf.9 ============================================================================== --- head/share/man/man9/mbuf.9 Tue Jan 6 10:02:14 2015 (r276749) +++ head/share/man/man9/mbuf.9 Tue Jan 6 12:59:37 2015 (r276750) @@ -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 Modified: head/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c ============================================================================== --- head/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/contrib/ipfilter/netinet/ip_fil_freebsd.c Tue Jan 6 12:59:37 2015 (r276750) @@ -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; } Modified: head/sys/dev/an/if_an.c ============================================================================== --- head/sys/dev/an/if_an.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/an/if_an.c Tue Jan 6 12:59:37 2015 (r276750) @@ -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; Modified: head/sys/dev/bge/if_bge.c ============================================================================== --- head/sys/dev/bge/if_bge.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/bge/if_bge.c Tue Jan 6 12:59:37 2015 (r276750) @@ -1383,8 +1383,7 @@ bge_newbuf_jumbo(struct bge_softc *sc, 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); } Modified: head/sys/dev/ce/if_ce.c ============================================================================== --- head/sys/dev/ce/if_ce.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/ce/if_ce.c Tue Jan 6 12:59:37 2015 (r276750) @@ -307,8 +307,7 @@ static struct mbuf *makembuf (void *buf, 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; } Modified: head/sys/dev/cm/smc90cx6.c ============================================================================== --- head/sys/dev/cm/smc90cx6.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/cm/smc90cx6.c Tue Jan 6 12:59:37 2015 (r276750) @@ -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; } Modified: head/sys/dev/cp/if_cp.c ============================================================================== --- head/sys/dev/cp/if_cp.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/cp/if_cp.c Tue Jan 6 12:59:37 2015 (r276750) @@ -191,8 +191,7 @@ static struct mbuf *makembuf (void *buf, 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; } Modified: head/sys/dev/cs/if_cs.c ============================================================================== --- head/sys/dev/cs/if_cs.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/cs/if_cs.c Tue Jan 6 12:59:37 2015 (r276750) @@ -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); } Modified: head/sys/dev/ctau/if_ct.c ============================================================================== --- head/sys/dev/ctau/if_ct.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/ctau/if_ct.c Tue Jan 6 12:59:37 2015 (r276750) @@ -194,8 +194,7 @@ static struct mbuf *makembuf (void *buf, 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; } Modified: head/sys/dev/ed/if_ed.c ============================================================================== --- head/sys/dev/ed/if_ed.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/ed/if_ed.c Tue Jan 6 12:59:37 2015 (r276750) @@ -1323,10 +1323,7 @@ ed_get_packet(struct ed_softc *sc, bus_s */ 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; } Modified: head/sys/dev/ex/if_ex.c ============================================================================== --- head/sys/dev/ex/if_ex.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/ex/if_ex.c Tue Jan 6 12:59:37 2015 (r276750) @@ -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); Modified: head/sys/dev/fe/if_fe.c ============================================================================== --- head/sys/dev/fe/if_fe.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/fe/if_fe.c Tue Jan 6 12:59:37 2015 (r276750) @@ -1880,8 +1880,7 @@ fe_get_packet (struct fe_softc * sc, u_s /* 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; } Modified: head/sys/dev/hifn/hifn7751.c ============================================================================== --- head/sys/dev/hifn/hifn7751.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/hifn/hifn7751.c Tue Jan 6 12:59:37 2015 (r276750) @@ -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; Modified: head/sys/dev/ie/if_ie.c ============================================================================== --- head/sys/dev/ie/if_ie.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/ie/if_ie.c Tue Jan 6 12:59:37 2015 (r276750) @@ -728,8 +728,7 @@ ieget(struct ie_softc *sc, struct mbuf * 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) { Modified: head/sys/dev/le/lance.c ============================================================================== --- head/sys/dev/le/lance.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/le/lance.c Tue Jan 6 12:59:37 2015 (r276750) @@ -398,8 +398,7 @@ lance_get(struct lance_softc *sc, int bo 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; } Modified: head/sys/dev/lmc/if_lmc.c ============================================================================== --- head/sys/dev/lmc/if_lmc.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/lmc/if_lmc.c Tue Jan 6 12:59:37 2015 (r276750) @@ -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++; Modified: head/sys/dev/mn/if_mn.c ============================================================================== --- head/sys/dev/mn/if_mn.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/mn/if_mn.c Tue Jan 6 12:59:37 2015 (r276750) @@ -1165,8 +1165,7 @@ mn_rx_intr(struct mn_softc *sc, u_int32_ 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 */ Modified: head/sys/dev/my/if_my.c ============================================================================== --- head/sys/dev/my/if_my.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/my/if_my.c Tue Jan 6 12:59:37 2015 (r276750) @@ -1085,8 +1085,7 @@ my_newbuf(struct my_softc * sc, struct m "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 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); Modified: head/sys/dev/pcn/if_pcn.c ============================================================================== --- head/sys/dev/pcn/if_pcn.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/pcn/if_pcn.c Tue Jan 6 12:59:37 2015 (r276750) @@ -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); } Modified: head/sys/dev/pdq/pdq_freebsd.h ============================================================================== --- head/sys/dev/pdq/pdq_freebsd.h Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/pdq/pdq_freebsd.h Tue Jan 6 12:59:37 2015 (r276750) @@ -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 { \ Modified: head/sys/dev/pdq/pdq_ifsubr.c ============================================================================== --- head/sys/dev/pdq/pdq_ifsubr.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/pdq/pdq_ifsubr.c Tue Jan 6 12:59:37 2015 (r276750) @@ -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; Modified: head/sys/dev/pdq/pdqvar.h ============================================================================== --- head/sys/dev/pdq/pdqvar.h Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/pdq/pdqvar.h Tue Jan 6 12:59:37 2015 (r276750) @@ -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 { \ Modified: head/sys/dev/safe/safe.c ============================================================================== --- head/sys/dev/safe/safe.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/safe/safe.c Tue Jan 6 12:59:37 2015 (r276750) @@ -1328,8 +1328,7 @@ safe_process(device_t dev, struct crypto 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 crypto 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++; Modified: head/sys/dev/sbni/if_sbni.c ============================================================================== --- head/sys/dev/sbni/if_sbni.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/sbni/if_sbni.c Tue Jan 6 12:59:37 2015 (r276750) @@ -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); } Modified: head/sys/dev/smc/if_smc.c ============================================================================== --- head/sys/dev/smc/if_smc.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/smc/if_smc.c Tue Jan 6 12:59:37 2015 (r276750) @@ -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; } Modified: head/sys/dev/sn/if_sn.c ============================================================================== --- head/sys/dev/sn/if_sn.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/sn/if_sn.c Tue Jan 6 12:59:37 2015 (r276750) @@ -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"); Modified: head/sys/dev/snc/dp83932.c ============================================================================== --- head/sys/dev/snc/dp83932.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/snc/dp83932.c Tue Jan 6 12:59:37 2015 (r276750) @@ -1129,8 +1129,7 @@ sonic_get(struct snc_softc *sc, u_int32_ 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); } Modified: head/sys/dev/ti/if_ti.c ============================================================================== --- head/sys/dev/ti/if_ti.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/ti/if_ti.c Tue Jan 6 12:59:37 2015 (r276750) @@ -1596,8 +1596,7 @@ ti_newbuf_jumbo(struct ti_softc *sc, int "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; Modified: head/sys/dev/tl/if_tl.c ============================================================================== --- head/sys/dev/tl/if_tl.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/tl/if_tl.c Tue Jan 6 12:59:37 2015 (r276750) @@ -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); Modified: head/sys/dev/usb/misc/udbp.c ============================================================================== --- head/sys/dev/usb/misc/udbp.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/usb/misc/udbp.c Tue Jan 6 12:59:37 2015 (r276750) @@ -417,9 +417,8 @@ udbp_bulk_read_callback(struct usb_xfer 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; } Modified: head/sys/dev/vx/if_vx.c ============================================================================== --- head/sys/dev/vx/if_vx.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/vx/if_vx.c Tue Jan 6 12:59:37 2015 (r276750) @@ -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); Modified: head/sys/dev/wb/if_wb.c ============================================================================== --- head/sys/dev/wb/if_wb.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/wb/if_wb.c Tue Jan 6 12:59:37 2015 (r276750) @@ -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); } Modified: head/sys/dev/xe/if_xe.c ============================================================================== --- head/sys/dev/xe/if_xe.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/xe/if_xe.c Tue Jan 6 12:59:37 2015 (r276750) @@ -765,8 +765,7 @@ xe_rxintr(struct xe_softc *scp, uint8_t } 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; Modified: head/sys/dev/xen/netfront/netfront.c ============================================================================== --- head/sys/dev/xen/netfront/netfront.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/dev/xen/netfront/netfront.c Tue Jan 6 12:59:37 2015 (r276750) @@ -822,8 +822,7 @@ network_alloc_rx_buffers(struct netfront 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); Modified: head/sys/mips/adm5120/if_admsw.c ============================================================================== --- head/sys/mips/adm5120/if_admsw.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/mips/adm5120/if_admsw.c Tue Jan 6 12:59:37 2015 (r276750) @@ -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, 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); } Modified: head/sys/netgraph/atm/ngatmbase.c ============================================================================== --- head/sys/netgraph/atm/ngatmbase.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/netgraph/atm/ngatmbase.c Tue Jan 6 12:59:37 2015 (r276750) @@ -151,8 +151,7 @@ uni_msg_pack_mbuf(struct uni_msg *msg, v } 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, v 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; Modified: head/sys/netgraph/atm/sscop/ng_sscop_cust.h ============================================================================== --- head/sys/netgraph/atm/sscop/ng_sscop_cust.h Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/netgraph/atm/sscop/ng_sscop_cust.h Tue Jan 6 12:59:37 2015 (r276750) @@ -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; \ } \ Modified: head/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c ============================================================================== --- head/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/netgraph/bluetooth/drivers/bt3c/ng_bt3c_pccard.c Tue Jan 6 12:59:37 2015 (r276750) @@ -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"); Modified: head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c ============================================================================== --- head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/netgraph/bluetooth/drivers/ubt/ng_ubt.c Tue Jan 6 12:59:37 2015 (r276750) @@ -816,8 +816,7 @@ ubt_intr_read_callback(struct usb_xfer * 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 * 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 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! */ Modified: head/sys/netgraph/ng_vjc.c ============================================================================== --- head/sys/netgraph/ng_vjc.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/netgraph/ng_vjc.c Tue Jan 6 12:59:37 2015 (r276750) @@ -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); Modified: head/sys/netipsec/key.c ============================================================================== --- head/sys/netipsec/key.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/netipsec/key.c Tue Jan 6 12:59:37 2015 (r276750) @@ -2153,8 +2153,7 @@ key_spddelete2(struct socket *so, struct 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 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 mbu 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 m 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 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; } Modified: head/sys/netipsec/keysock.c ============================================================================== --- head/sys/netipsec/keysock.c Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/netipsec/keysock.c Tue Jan 6 12:59:37 2015 (r276750) @@ -223,8 +223,7 @@ key_sendup(struct socket *so, struct sad 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); Modified: head/sys/sys/mbuf.h ============================================================================== --- head/sys/sys/mbuf.h Tue Jan 6 10:02:14 2015 (r276749) +++ head/sys/sys/mbuf.h Tue Jan 6 12:59:37 2015 (r276750) @@ -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); } /*
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201501061259.t06CxcTc096488>