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