svn commit: r192345 - in user/kmacy/releng_7_2_fcs/sys: compat/ndis dev/cxgb dev/cxgb/ulp/tom dev/hatm dev/iscsi/initiator dev/lge dev/msk dev/patm dev/sk dev/ti dev/wpi kern pci sys

Kip Macy kmacy at FreeBSD.org
Mon May 18 21:58:22 UTC 2009


Author: kmacy
Date: Mon May 18 21:58:21 2009
New Revision: 192345
URL: http://svn.freebsd.org/changeset/base/192345

Log:
  merge 175872
  Give MEXTADD() another argument to make both void pointers to the
  free function controlable, instead of passing the KVA of the buffer
  storage as the first argument.
  
  Fix all conventional users of the API to pass the KVA of the buffer
  as the first argument, to make this a no-op commit.
  
  Likely break the only non-convetional user of the API, after informing
  the relevant committer.
  
  Update the mbuf(9) manual page, which was already out of sync on
  this point.
  
  This paves the way for giving sendfile(9) a way to wait for the
  passed storage to have been accessed before returning.
  
  This does not affect the memory layout or size of mbufs.

Modified:
  user/kmacy/releng_7_2_fcs/sys/compat/ndis/kern_ndis.c
  user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c
  user/kmacy/releng_7_2_fcs/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c
  user/kmacy/releng_7_2_fcs/sys/dev/hatm/if_hatm_intr.c
  user/kmacy/releng_7_2_fcs/sys/dev/iscsi/initiator/isc_soc.c
  user/kmacy/releng_7_2_fcs/sys/dev/lge/if_lge.c
  user/kmacy/releng_7_2_fcs/sys/dev/msk/if_msk.c
  user/kmacy/releng_7_2_fcs/sys/dev/patm/if_patm_rx.c
  user/kmacy/releng_7_2_fcs/sys/dev/sk/if_sk.c
  user/kmacy/releng_7_2_fcs/sys/dev/ti/if_ti.c
  user/kmacy/releng_7_2_fcs/sys/dev/wpi/if_wpi.c
  user/kmacy/releng_7_2_fcs/sys/kern/kern_mbuf.c
  user/kmacy/releng_7_2_fcs/sys/kern/uipc_cow.c
  user/kmacy/releng_7_2_fcs/sys/kern/uipc_mbuf.c
  user/kmacy/releng_7_2_fcs/sys/kern/uipc_syscalls.c
  user/kmacy/releng_7_2_fcs/sys/pci/if_wb.c
  user/kmacy/releng_7_2_fcs/sys/sys/mbuf.h

Modified: user/kmacy/releng_7_2_fcs/sys/compat/ndis/kern_ndis.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/compat/ndis/kern_ndis.c	Mon May 18 21:57:28 2009	(r192344)
+++ user/kmacy/releng_7_2_fcs/sys/compat/ndis/kern_ndis.c	Mon May 18 21:58:21 2009	(r192345)
@@ -732,7 +732,7 @@ ndis_ptom(m0, p)
 		m->m_len = MmGetMdlByteCount(buf);
 		m->m_data = MmGetMdlVirtualAddress(buf);
 		MEXTADD(m, m->m_data, m->m_len, ndis_return_packet,
-		    p, 0, EXT_NDIS);
+		    m->m_data, p, 0, EXT_NDIS);
 		p->np_refcnt++;
 
 		totlen += m->m_len;

Modified: user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c	Mon May 18 21:57:28 2009	(r192344)
+++ user/kmacy/releng_7_2_fcs/sys/dev/cxgb/cxgb_sge.c	Mon May 18 21:58:21 2009	(r192345)
@@ -2552,12 +2552,8 @@ init_cluster_mbuf(caddr_t cl, int flags,
 	m->m_ext.ref_cnt = (uint32_t *)(cl + header_size - sizeof(uint32_t));
 	m->m_ext.ext_size = m_getsizefromtype(type);
 	m->m_ext.ext_free = ext_free_handler;
-#if __FreeBSD_version >= 800016
 	m->m_ext.ext_arg1 = cl;
 	m->m_ext.ext_arg2 = (void *)(uintptr_t)type;
-#else
-	m->m_ext.ext_args = (void *)(uintptr_t)type;
-#endif
 	m->m_ext.ext_type = EXT_EXTREF;
 	*(m->m_ext.ref_cnt) = 1;
 	DPRINTF("data=%p ref_cnt=%p\n", m->m_data, m->m_ext.ref_cnt); 

Modified: user/kmacy/releng_7_2_fcs/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c	Mon May 18 21:57:28 2009	(r192344)
+++ user/kmacy/releng_7_2_fcs/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c	Mon May 18 21:58:21 2009	(r192345)
@@ -368,7 +368,8 @@ cxgb_vm_page_to_miov(struct toepcb *toep
 	m0->m_flags = (M_EXT|M_NOFREE);
 	m0->m_ext.ext_type = EXT_EXTREF;
 	m0->m_ext.ext_free = cxgb_zero_copy_free;
-	m0->m_ext.ext_args = NULL;	/* XXX: probably wrong /phk */
+	m0->m_ext.ext_arg1 = NULL;	/* XXX: probably wrong /phk */
+	m0->m_ext.ext_arg2 = NULL;
     
 	mv = mtomv(m0);
 	mv->mv_count = seg_count;

Modified: user/kmacy/releng_7_2_fcs/sys/dev/hatm/if_hatm_intr.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/dev/hatm/if_hatm_intr.c	Mon May 18 21:57:28 2009	(r192344)
+++ user/kmacy/releng_7_2_fcs/sys/dev/hatm/if_hatm_intr.c	Mon May 18 21:58:21 2009	(r192345)
@@ -458,7 +458,7 @@ hatm_rx_buffer(struct hatm_softc *sc, u_
 		if (m != NULL) {
 			m->m_ext.ref_cnt = &c0->hdr.ref_cnt;
 			MEXTADD(m, (void *)c0, MBUF0_SIZE,
-			    hatm_mbuf0_free, sc, M_PKTHDR, EXT_EXTREF);
+			    hatm_mbuf0_free, c0, sc, M_PKTHDR, EXT_EXTREF);
 			m->m_data += MBUF0_OFFSET;
 		} else
 			hatm_mbuf0_free(c0, sc);
@@ -482,7 +482,7 @@ hatm_rx_buffer(struct hatm_softc *sc, u_
 		if (m != NULL) {
 			m->m_ext.ref_cnt = &c1->hdr.ref_cnt;
 			MEXTADD(m, (void *)c1, MBUF1_SIZE,
-			    hatm_mbuf1_free, sc, M_PKTHDR, EXT_EXTREF);
+			    hatm_mbuf1_free, c1, sc, M_PKTHDR, EXT_EXTREF);
 			m->m_data += MBUF1_OFFSET;
 		} else
 			hatm_mbuf1_free(c1, sc);

Modified: user/kmacy/releng_7_2_fcs/sys/dev/iscsi/initiator/isc_soc.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/dev/iscsi/initiator/isc_soc.c	Mon May 18 21:57:28 2009	(r192344)
+++ user/kmacy/releng_7_2_fcs/sys/dev/iscsi/initiator/isc_soc.c	Mon May 18 21:58:21 2009	(r192345)
@@ -164,7 +164,7 @@ isc_sendPDU(isc_session_t *sp, pduq_t *p
 		md->m_ext.ref_cnt = &nil_refcnt;
                 l = min(MCLBYTES, len);
                 MEXTADD(md, pp->ds + off, l, nil_fn,
-                        NULL, 0, EXT_EXTREF);
+                        pp->ds + off, NULL, 0, EXT_EXTREF);
                 md->m_len = l;
                 md->m_next = NULL;
                 mh->m_pkthdr.len += l;

Modified: user/kmacy/releng_7_2_fcs/sys/dev/lge/if_lge.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/dev/lge/if_lge.c	Mon May 18 21:57:28 2009	(r192344)
+++ user/kmacy/releng_7_2_fcs/sys/dev/lge/if_lge.c	Mon May 18 21:58:21 2009	(r192345)
@@ -718,7 +718,7 @@ lge_newbuf(sc, c, m)
 		m_new->m_data = (void *)buf;
 		m_new->m_len = m_new->m_pkthdr.len = LGE_JUMBO_FRAMELEN;
 		MEXTADD(m_new, buf, LGE_JUMBO_FRAMELEN, lge_jfree,
-		    (struct lge_softc *)sc, 0, EXT_NET_DRV);
+		    buf, (struct lge_softc *)sc, 0, EXT_NET_DRV);
 	} else {
 		m_new = m;
 		m_new->m_len = m_new->m_pkthdr.len = LGE_JUMBO_FRAMELEN;

Modified: user/kmacy/releng_7_2_fcs/sys/dev/msk/if_msk.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/dev/msk/if_msk.c	Mon May 18 21:57:28 2009	(r192344)
+++ user/kmacy/releng_7_2_fcs/sys/dev/msk/if_msk.c	Mon May 18 21:58:21 2009	(r192345)
@@ -841,6 +841,14 @@ msk_jumbo_newbuf(struct msk_if_softc *sc
 	m = m_getjcl(M_DONTWAIT, MT_DATA, M_PKTHDR, MJUM9BYTES);
 	if (m == NULL)
 		return (ENOBUFS);
+	buf = msk_jalloc(sc_if);
+	if (buf == NULL) {
+		m_freem(m);
+		return (ENOBUFS);
+	}
+	/* Attach the buffer to the mbuf. */
+	MEXTADD(m, buf, MSK_JLEN, msk_jfree, buf,
+	    (struct msk_if_softc *)sc_if, 0, EXT_NET_DRV);
 	if ((m->m_flags & M_EXT) == 0) {
 		m_freem(m);
 		return (ENOBUFS);

Modified: user/kmacy/releng_7_2_fcs/sys/dev/patm/if_patm_rx.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/dev/patm/if_patm_rx.c	Mon May 18 21:57:28 2009	(r192344)
+++ user/kmacy/releng_7_2_fcs/sys/dev/patm/if_patm_rx.c	Mon May 18 21:58:21 2009	(r192345)
@@ -406,11 +406,11 @@ patm_rcv_mbuf(struct patm_softc *sc, voi
 
 	if ((h & ~MBUF_HMASK) == MBUF_VHANDLE) {
 		MEXTADD(m, (caddr_t)buf, VMBUF_SIZE, mbp_ext_free,
-		    sc->vbuf_pool, M_PKTHDR, EXT_NET_DRV);
+		    buf, sc->vbuf_pool, M_PKTHDR, EXT_NET_DRV);
 		m->m_data += VMBUF_OFFSET;
 	} else {
 		MEXTADD(m, (caddr_t)buf, SMBUF_SIZE, mbp_ext_free,
-		    sc->sbuf_pool, M_PKTHDR, EXT_NET_DRV);
+		    buf, sc->sbuf_pool, M_PKTHDR, EXT_NET_DRV);
 		m->m_data += SMBUF_OFFSET;
 	}
 

Modified: user/kmacy/releng_7_2_fcs/sys/dev/sk/if_sk.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/dev/sk/if_sk.c	Mon May 18 21:57:28 2009	(r192344)
+++ user/kmacy/releng_7_2_fcs/sys/dev/sk/if_sk.c	Mon May 18 21:58:21 2009	(r192345)
@@ -1052,6 +1052,14 @@ sk_jumbo_newbuf(sc_if, idx)
 	m = m_getjcl(M_DONTWAIT, MT_DATA, M_PKTHDR, MJUM9BYTES);
 	if (m == NULL)
 		return (ENOBUFS);
+	buf = sk_jalloc(sc_if);
+	if (buf == NULL) {
+		m_freem(m);
+		return (ENOBUFS);
+	}
+	/* Attach the buffer to the mbuf */
+	MEXTADD(m, buf, SK_JLEN, sk_jfree, (struct sk_if_softc *)sc_if, buf, 0,
+	    EXT_NET_DRV);
 	if ((m->m_flags & M_EXT) == 0) {
 		m_freem(m);
 		return (ENOBUFS);

Modified: user/kmacy/releng_7_2_fcs/sys/dev/ti/if_ti.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/dev/ti/if_ti.c	Mon May 18 21:57:28 2009	(r192344)
+++ user/kmacy/releng_7_2_fcs/sys/dev/ti/if_ti.c	Mon May 18 21:58:21 2009	(r192345)
@@ -1503,7 +1503,8 @@ ti_newbuf_jumbo(sc, idx, m_old)
 			m[i]->m_data = (void *)sf_buf_kva(sf[i]);
 			m[i]->m_len = PAGE_SIZE;
 			MEXTADD(m[i], sf_buf_kva(sf[i]), PAGE_SIZE,
-			    sf_buf_mext, sf[i], 0, EXT_DISPOSABLE);
+			    sf_buf_mext, (void*)sf_buf_kva(sf[i]), sf[i],
+			    0, EXT_DISPOSABLE);
 			m[i]->m_next = m[i+1];
 		}
 		/* link the buffers to the header */

Modified: user/kmacy/releng_7_2_fcs/sys/dev/wpi/if_wpi.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/dev/wpi/if_wpi.c	Mon May 18 21:57:28 2009	(r192344)
+++ user/kmacy/releng_7_2_fcs/sys/dev/wpi/if_wpi.c	Mon May 18 21:58:21 2009	(r192345)
@@ -971,16 +971,15 @@ wpi_alloc_rx_ring(struct wpi_softc *sc, 
 			error = ENOMEM;
 			goto fail;
 		}
-		/* map page */
-		error = bus_dmamap_load(ring->data_dmat, data->map,
-		    mtod(m, caddr_t), MJUMPAGESIZE,
-		    wpi_dma_map_addr, &paddr, BUS_DMA_NOWAIT);
-		if (error != 0 && error != EFBIG) {
-			device_printf(sc->sc_dev,
-			    "%s: bus_dmamap_load failed, error %d\n",
-			    __func__, error);
-			m_freem(m);
-			error = ENOMEM;	/* XXX unique code */
+
+		/* attach RxBuffer to mbuf */
+		MEXTADD(data->m, rbuf->vaddr, WPI_RBUF_SIZE,wpi_free_rbuf,
+		    rbuf->vaddr, rbuf, 0, EXT_NET_DRV);
+
+		if ((data->m->m_flags & M_EXT) == 0) {
+			m_freem(data->m);
+			data->m = NULL;
+			error = ENOBUFS;
 			goto fail;
 		}
 		bus_dmamap_sync(ring->data_dmat, data->map, 
@@ -1489,7 +1488,27 @@ wpi_rx_intr(struct wpi_softc *sc, struct
 	data->m = mnew;
 	/* update Rx descriptor */
 	ring->desc[ring->cur] = htole32(paddr);
+		/* attach Rx buffer to mbuf */
+		MEXTADD(mnew, rbuf->vaddr, WPI_RBUF_SIZE, wpi_free_rbuf,
+		    rbuf->vaddr, rbuf, 0, EXT_NET_DRV);
+		SLIST_REMOVE_HEAD(&sc->rxq.freelist, next);
+		data->m = mnew;
+
+		/* update Rx descriptor */
+		ring->desc[ring->cur] = htole32(rbuf->paddr);
+	} else {
+		/* no free rbufs, copy frame */
+		m = m_dup(m, M_DONTWAIT);
+		if (m == NULL) {
+			/* no free mbufs either, drop frame */
+			ifp->if_ierrors++;
+			return;
+		}
+	}
 
+#ifndef WPI_CURRENT
+	if (sc->sc_drvbpf != NULL) {
+#else
 	if (bpf_peers_present(sc->sc_drvbpf)) {
 		struct wpi_rx_radiotap_header *tap = &sc->sc_rxtap;
 

Modified: user/kmacy/releng_7_2_fcs/sys/kern/kern_mbuf.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/kern/kern_mbuf.c	Mon May 18 21:57:28 2009	(r192344)
+++ user/kmacy/releng_7_2_fcs/sys/kern/kern_mbuf.c	Mon May 18 21:58:21 2009	(r192345)
@@ -469,7 +469,8 @@ mb_dtor_pack(void *mem, int size, void *
 	KASSERT((m->m_flags & M_EXT) == M_EXT, ("%s: M_EXT not set", __func__));
 	KASSERT(m->m_ext.ext_buf != NULL, ("%s: ext_buf == NULL", __func__));
 	KASSERT(m->m_ext.ext_free == NULL, ("%s: ext_free != NULL", __func__));
-	KASSERT(m->m_ext.ext_args == NULL, ("%s: ext_args != NULL", __func__));
+	KASSERT(m->m_ext.ext_arg1 == NULL, ("%s: ext_arg1 != NULL", __func__));
+	KASSERT(m->m_ext.ext_arg2 == NULL, ("%s: ext_arg2 != NULL", __func__));
 	KASSERT(m->m_ext.ext_size == MCLBYTES, ("%s: ext_size != MCLBYTES", __func__));
 	KASSERT(m->m_ext.ext_type == EXT_PACKET, ("%s: ext_type != EXT_PACKET", __func__));
 	KASSERT(*m->m_ext.ref_cnt == 1, ("%s: ref_cnt != 1", __func__));
@@ -537,7 +538,8 @@ mb_ctor_clust(void *mem, int size, void 
 		m->m_data = m->m_ext.ext_buf;
 		m->m_flags |= M_EXT;
 		m->m_ext.ext_free = NULL;
-		m->m_ext.ext_args = NULL;
+		m->m_ext.ext_arg1 = NULL;
+		m->m_ext.ext_arg2 = NULL;
 		m->m_ext.ext_size = size;
 		m->m_ext.ext_type = type;
 		m->m_ext.ref_cnt = refcnt;

Modified: user/kmacy/releng_7_2_fcs/sys/kern/uipc_cow.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/kern/uipc_cow.c	Mon May 18 21:57:28 2009	(r192344)
+++ user/kmacy/releng_7_2_fcs/sys/kern/uipc_cow.c	Mon May 18 21:58:21 2009	(r192345)
@@ -164,8 +164,8 @@ socow_setup(struct mbuf *m0, struct uio 
 	/* 
 	 * attach to mbuf
 	 */
-	MEXTADD(m0, sf_buf_kva(sf), PAGE_SIZE, socow_iodone, sf, M_RDONLY,
-	    EXT_SFBUF);
+	MEXTADD(m0, sf_buf_kva(sf), PAGE_SIZE, socow_iodone,
+	    (void*)sf_buf_kva(sf), sf, M_RDONLY, EXT_SFBUF);
 	m0->m_len = PAGE_SIZE - offset;
 	m0->m_data = (caddr_t)sf_buf_kva(sf) + offset;
 	socow_stats.success++;

Modified: user/kmacy/releng_7_2_fcs/sys/kern/uipc_mbuf.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/kern/uipc_mbuf.c	Mon May 18 21:57:28 2009	(r192344)
+++ user/kmacy/releng_7_2_fcs/sys/kern/uipc_mbuf.c	Mon May 18 21:58:21 2009	(r192345)
@@ -186,7 +186,7 @@ m_freem(struct mbuf *mb)
  */
 void
 m_extadd(struct mbuf *mb, caddr_t buf, u_int size,
-    void (*freef)(void *, void *), void *args, int flags, int type)
+    void (*freef)(void *, void *), void *arg1, void *arg2, int flags, int type)
 {
 	KASSERT(type != EXT_CLUSTER, ("%s: EXT_CLUSTER not allowed", __func__));
 
@@ -199,7 +199,8 @@ m_extadd(struct mbuf *mb, caddr_t buf, u
 		mb->m_data = mb->m_ext.ext_buf;
 		mb->m_ext.ext_size = size;
 		mb->m_ext.ext_free = freef;
-		mb->m_ext.ext_args = args;
+		mb->m_ext.ext_arg1 = arg1;
+		mb->m_ext.ext_arg2 = arg2;
 		mb->m_ext.ext_type = type;
         }
 }
@@ -254,8 +255,8 @@ mb_free_ext(struct mbuf *m)
 		case EXT_EXTREF:
 			KASSERT(m->m_ext.ext_free != NULL,
 				("%s: ext_free not set", __func__));
-			(*(m->m_ext.ext_free))(m->m_ext.ext_buf,
-			    m->m_ext.ext_args);
+			(*(m->m_ext.ext_free))(m->m_ext.ext_arg1,
+			    m->m_ext.ext_arg2);
 			break;
 		default:
 			KASSERT(m->m_ext.ext_type == 0,
@@ -271,7 +272,8 @@ mb_free_ext(struct mbuf *m)
 	 */
 	m->m_ext.ext_buf = NULL;
 	m->m_ext.ext_free = NULL;
-	m->m_ext.ext_args = NULL;
+	m->m_ext.ext_arg1 = NULL;
+	m->m_ext.ext_arg2 = NULL;
 	m->m_ext.ref_cnt = NULL;
 	m->m_ext.ext_size = 0;
 	m->m_ext.ext_type = 0;
@@ -296,7 +298,8 @@ mb_dupcl(struct mbuf *n, struct mbuf *m)
 		atomic_add_int(m->m_ext.ref_cnt, 1);
 	n->m_ext.ext_buf = m->m_ext.ext_buf;
 	n->m_ext.ext_free = m->m_ext.ext_free;
-	n->m_ext.ext_args = m->m_ext.ext_args;
+	n->m_ext.ext_arg1 = m->m_ext.ext_arg1;
+	n->m_ext.ext_arg2 = m->m_ext.ext_arg2;
 	n->m_ext.ext_size = m->m_ext.ext_size;
 	n->m_ext.ref_cnt = m->m_ext.ref_cnt;
 	n->m_ext.ext_type = m->m_ext.ext_type;

Modified: user/kmacy/releng_7_2_fcs/sys/kern/uipc_syscalls.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/kern/uipc_syscalls.c	Mon May 18 21:57:28 2009	(r192344)
+++ user/kmacy/releng_7_2_fcs/sys/kern/uipc_syscalls.c	Mon May 18 21:58:21 2009	(r192345)
@@ -2148,7 +2148,7 @@ retry_space:
 				break;
 			}
 			MEXTADD(m0, sf_buf_kva(sf), PAGE_SIZE, sf_buf_mext,
-			    sf, M_RDONLY, EXT_SFBUF);
+			    (void*)sf_buf_kva(sf), sf, M_RDONLY, EXT_SFBUF);
 			m0->m_data = (char *)sf_buf_kva(sf) + pgoff;
 			m0->m_len = xfsize;
 

Modified: user/kmacy/releng_7_2_fcs/sys/pci/if_wb.c
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/pci/if_wb.c	Mon May 18 21:57:28 2009	(r192344)
+++ user/kmacy/releng_7_2_fcs/sys/pci/if_wb.c	Mon May 18 21:58:21 2009	(r192345)
@@ -1036,8 +1036,8 @@ wb_newbuf(sc, c, m)
 			return(ENOBUFS);
 		m_new->m_data = c->wb_buf;
 		m_new->m_pkthdr.len = m_new->m_len = WB_BUFBYTES;
-		MEXTADD(m_new, c->wb_buf, WB_BUFBYTES, wb_bfree, NULL, 0,
-		    EXT_NET_DRV);
+		MEXTADD(m_new, c->wb_buf, WB_BUFBYTES, wb_bfree, c->wb_buf,
+		    NULL, 0, EXT_NET_DRV);
 	} else {
 		m_new = m;
 		m_new->m_len = m_new->m_pkthdr.len = WB_BUFBYTES;

Modified: user/kmacy/releng_7_2_fcs/sys/sys/mbuf.h
==============================================================================
--- user/kmacy/releng_7_2_fcs/sys/sys/mbuf.h	Mon May 18 21:57:28 2009	(r192344)
+++ user/kmacy/releng_7_2_fcs/sys/sys/mbuf.h	Mon May 18 21:58:21 2009	(r192345)
@@ -134,7 +134,8 @@ struct m_ext {
 	caddr_t		 ext_buf;	/* start of buffer */
 	void		(*ext_free)	/* free routine if not the usual */
 			    (void *, void *);
-        void		*ext_args;	/* optional argument pointer */
+	void		*ext_arg1;	/* optional argument pointer */
+	void		*ext_arg2;	/* optional argument pointer */
 	u_int		 ext_size;	/* size of buffer, for ext_free */
 	volatile u_int	*ref_cnt;	/* pointer to ref count info */
 	int		 ext_type;	/* type of external storage */
@@ -597,7 +598,7 @@ m_cljset(struct mbuf *m, void *cl, int t
 	}
 
 	m->m_data = m->m_ext.ext_buf = cl;
-	m->m_ext.ext_free = m->m_ext.ext_args;
+	m->m_ext.ext_free = m->m_ext.ext_arg1 = m->m_ext.ext_arg2 = NULL;
 	m->m_ext.ext_size = size;
 	m->m_ext.ext_type = type;
 	m->m_ext.ref_cnt = uma_find_refcnt(zone, cl);
@@ -629,8 +630,8 @@ m_last(struct mbuf *m)
 #define	MGET(m, how, type)	((m) = m_get((how), (type)))
 #define	MGETHDR(m, how, type)	((m) = m_gethdr((how), (type)))
 #define	MCLGET(m, how)		m_clget((m), (how))
-#define	MEXTADD(m, buf, size, free, args, flags, type)		\
-    m_extadd((m), (caddr_t)(buf), (size), (free),(args),(flags), (type))
+#define	MEXTADD(m, buf, size, free, arg1, arg2, flags, type)		\
+    m_extadd((m), (caddr_t)(buf), (size), (free),(arg1),(arg2),(flags), (type))
 #define	m_getm(m, len, how, type)					\
     m_getm2((m), (len), (how), (type), M_PKTHDR)
 
@@ -756,7 +757,7 @@ int		 m_apply(struct mbuf *, int, int,
 int		 m_append(struct mbuf *, int, c_caddr_t);
 void		 m_cat(struct mbuf *, struct mbuf *);
 void		 m_extadd(struct mbuf *, caddr_t, u_int,
-		    void (*)(void *, void *), void *, int, int);
+		    void (*)(void *, void *), void *, void *, int, int);
 struct mbuf	*m_collapse(struct mbuf *, int, int);
 void		 m_copyback(struct mbuf *, int, int, c_caddr_t);
 void		 m_copydata(const struct mbuf *, int, int, caddr_t);


More information about the svn-src-user mailing list