summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--share/man/man9/mbuf.95
-rw-r--r--sys/compat/ndis/kern_ndis.c2
-rw-r--r--sys/dev/cxgb/cxgb_sge.c3
-rw-r--r--sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c3
-rw-r--r--sys/dev/hatm/if_hatm_intr.c4
-rw-r--r--sys/dev/iscsi/initiator/isc_soc.c2
-rw-r--r--sys/dev/lge/if_lge.c2
-rw-r--r--sys/dev/msk/if_msk.c4
-rw-r--r--sys/dev/nfe/if_nfe.c2
-rw-r--r--sys/dev/patm/if_patm_rx.c4
-rw-r--r--sys/dev/sk/if_sk.c2
-rw-r--r--sys/dev/ti/if_ti.c3
-rw-r--r--sys/dev/wpi/if_wpi.c6
-rw-r--r--sys/kern/kern_mbuf.c6
-rw-r--r--sys/kern/uipc_cow.c4
-rw-r--r--sys/kern/uipc_mbuf.c15
-rw-r--r--sys/kern/uipc_syscalls.c2
-rw-r--r--sys/pci/if_wb.c4
-rw-r--r--sys/sys/mbuf.h11
-rw-r--r--sys/sys/param.h2
20 files changed, 48 insertions, 38 deletions
diff --git a/share/man/man9/mbuf.9 b/share/man/man9/mbuf.9
index 4ea3a72..04349b4 100644
--- a/share/man/man9/mbuf.9
+++ b/share/man/man9/mbuf.9
@@ -45,8 +45,9 @@
.Fa "struct mbuf *mbuf"
.Fa "caddr_t buf"
.Fa "u_int size"
-.Fa "void (*free)(void *opt_args)"
-.Fa "void *opt_args"
+.Fa "void (*free)(void *opt_arg1, void *opt_arg2)"
+.Fa "void *opt_arg1"
+.Fa "void *opt_arg2"
.Fa "short flags"
.Fa "int type"
.Fc
diff --git a/sys/compat/ndis/kern_ndis.c b/sys/compat/ndis/kern_ndis.c
index ba84c4f..0720dda 100644
--- a/sys/compat/ndis/kern_ndis.c
+++ b/sys/compat/ndis/kern_ndis.c
@@ -734,7 +734,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;
diff --git a/sys/dev/cxgb/cxgb_sge.c b/sys/dev/cxgb/cxgb_sge.c
index f643e38..78b2651 100644
--- a/sys/dev/cxgb/cxgb_sge.c
+++ b/sys/dev/cxgb/cxgb_sge.c
@@ -2452,7 +2452,8 @@ init_cluster_mbuf(caddr_t cl, int flags, int type, uma_zone_t zone)
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;
- m->m_ext.ext_args = (void *)(uintptr_t)type;
+ m->m_ext.ext_arg1 = cl;
+ m->m_ext.ext_arg2 = (void *)(uintptr_t)type;
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);
diff --git a/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c b/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c
index 7860f4b..a3dd692 100644
--- a/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c
+++ b/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c
@@ -224,7 +224,8 @@ cxgb_vm_page_to_miov(struct toepcb *toep, struct uio *uio, struct mbuf **m)
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;
+ m0->m_ext.ext_arg1 = NULL; /* XXX: probably wrong /phk */
+ m0->m_ext.ext_arg2 = NULL;
mv = mtomv(m0);
mv->mv_count = seg_count;
diff --git a/sys/dev/hatm/if_hatm_intr.c b/sys/dev/hatm/if_hatm_intr.c
index b20af45..35bbd57 100644
--- a/sys/dev/hatm/if_hatm_intr.c
+++ b/sys/dev/hatm/if_hatm_intr.c
@@ -458,7 +458,7 @@ hatm_rx_buffer(struct hatm_softc *sc, u_int group, u_int handle)
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_int group, u_int handle)
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);
diff --git a/sys/dev/iscsi/initiator/isc_soc.c b/sys/dev/iscsi/initiator/isc_soc.c
index f5a8344..0826ff6 100644
--- a/sys/dev/iscsi/initiator/isc_soc.c
+++ b/sys/dev/iscsi/initiator/isc_soc.c
@@ -164,7 +164,7 @@ isc_sendPDU(isc_session_t *sp, pduq_t *pq)
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;
diff --git a/sys/dev/lge/if_lge.c b/sys/dev/lge/if_lge.c
index 0f3dc2d..1313990 100644
--- a/sys/dev/lge/if_lge.c
+++ b/sys/dev/lge/if_lge.c
@@ -719,7 +719,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;
diff --git a/sys/dev/msk/if_msk.c b/sys/dev/msk/if_msk.c
index 669fcd0..2613b81 100644
--- a/sys/dev/msk/if_msk.c
+++ b/sys/dev/msk/if_msk.c
@@ -833,8 +833,8 @@ msk_jumbo_newbuf(struct msk_if_softc *sc_if, int idx)
return (ENOBUFS);
}
/* Attach the buffer to the mbuf. */
- MEXTADD(m, buf, MSK_JLEN, msk_jfree, (struct msk_if_softc *)sc_if, 0,
- EXT_NET_DRV);
+ 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);
diff --git a/sys/dev/nfe/if_nfe.c b/sys/dev/nfe/if_nfe.c
index 9c4e71c..5cf1351 100644
--- a/sys/dev/nfe/if_nfe.c
+++ b/sys/dev/nfe/if_nfe.c
@@ -2094,7 +2094,7 @@ nfe_jnewbuf(struct nfe_softc *sc, int idx)
return (ENOBUFS);
}
/* Attach the buffer to the mbuf. */
- MEXTADD(m, buf, NFE_JLEN, nfe_jfree, (struct nfe_softc *)sc, 0,
+ MEXTADD(m, buf, NFE_JLEN, nfe_jfree, buf, (struct nfe_softc *)sc, 0,
EXT_NET_DRV);
if ((m->m_flags & M_EXT) == 0) {
m_freem(m);
diff --git a/sys/dev/patm/if_patm_rx.c b/sys/dev/patm/if_patm_rx.c
index b972e3c..024d8ef 100644
--- a/sys/dev/patm/if_patm_rx.c
+++ b/sys/dev/patm/if_patm_rx.c
@@ -406,11 +406,11 @@ patm_rcv_mbuf(struct patm_softc *sc, void *buf, u_int h, int hdr)
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;
}
diff --git a/sys/dev/sk/if_sk.c b/sys/dev/sk/if_sk.c
index 217d3a6..c51b4d1 100644
--- a/sys/dev/sk/if_sk.c
+++ b/sys/dev/sk/if_sk.c
@@ -1055,7 +1055,7 @@ sk_jumbo_newbuf(sc_if, idx)
return (ENOBUFS);
}
/* Attach the buffer to the mbuf */
- MEXTADD(m, buf, SK_JLEN, sk_jfree, (struct sk_if_softc *)sc_if, 0,
+ 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);
diff --git a/sys/dev/ti/if_ti.c b/sys/dev/ti/if_ti.c
index 343dee5..80a2064 100644
--- a/sys/dev/ti/if_ti.c
+++ b/sys/dev/ti/if_ti.c
@@ -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 */
diff --git a/sys/dev/wpi/if_wpi.c b/sys/dev/wpi/if_wpi.c
index cc56c8a..315a5c3 100644
--- a/sys/dev/wpi/if_wpi.c
+++ b/sys/dev/wpi/if_wpi.c
@@ -1060,7 +1060,7 @@ wpi_alloc_rx_ring(struct wpi_softc *sc, struct wpi_rx_ring *ring)
/* attach RxBuffer to mbuf */
MEXTADD(data->m, rbuf->vaddr, WPI_RBUF_SIZE,wpi_free_rbuf,
- rbuf,0,EXT_NET_DRV);
+ rbuf->vaddr, rbuf, 0, EXT_NET_DRV);
if ((data->m->m_flags & M_EXT) == 0) {
m_freem(data->m);
@@ -1631,8 +1631,8 @@ wpi_rx_intr(struct wpi_softc *sc, struct wpi_rx_desc *desc,
}
/* attach Rx buffer to mbuf */
- MEXTADD(mnew,rbuf->vaddr,WPI_RBUF_SIZE, wpi_free_rbuf, rbuf, 0,
- EXT_NET_DRV);
+ 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;
diff --git a/sys/kern/kern_mbuf.c b/sys/kern/kern_mbuf.c
index 1dd8a16..275b92d 100644
--- a/sys/kern/kern_mbuf.c
+++ b/sys/kern/kern_mbuf.c
@@ -463,7 +463,8 @@ mb_dtor_pack(void *mem, int size, void *arg)
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__));
@@ -533,7 +534,8 @@ mb_ctor_clust(void *mem, int size, void *arg, int how)
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;
diff --git a/sys/kern/uipc_cow.c b/sys/kern/uipc_cow.c
index b4773d1..2e29ee3 100644
--- a/sys/kern/uipc_cow.c
+++ b/sys/kern/uipc_cow.c
@@ -160,8 +160,8 @@ socow_setup(struct mbuf *m0, struct uio *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++;
diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c
index a7fa18c..9015ec7 100644
--- a/sys/kern/uipc_mbuf.c
+++ b/sys/kern/uipc_mbuf.c
@@ -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_int size,
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;
diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c
index d0daa82..beca062 100644
--- a/sys/kern/uipc_syscalls.c
+++ b/sys/kern/uipc_syscalls.c
@@ -2099,7 +2099,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;
diff --git a/sys/pci/if_wb.c b/sys/pci/if_wb.c
index f42bc56..b652d6d 100644
--- a/sys/pci/if_wb.c
+++ b/sys/pci/if_wb.c
@@ -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;
diff --git a/sys/sys/mbuf.h b/sys/sys/mbuf.h
index 5a499e5..7096e89 100644
--- a/sys/sys/mbuf.h
+++ b/sys/sys/mbuf.h
@@ -131,7 +131,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 */
@@ -586,7 +587,7 @@ m_cljset(struct mbuf *m, void *cl, int type)
}
m->m_data = m->m_ext.ext_buf = cl;
- m->m_ext.ext_free = m->m_ext.ext_args = NULL;
+ 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);
@@ -618,8 +619,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)
@@ -745,7 +746,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);
diff --git a/sys/sys/param.h b/sys/sys/param.h
index 385571a..be4ff02 100644
--- a/sys/sys/param.h
+++ b/sys/sys/param.h
@@ -57,7 +57,7 @@
* is created, otherwise 1.
*/
#undef __FreeBSD_version
-#define __FreeBSD_version 800015 /* Master, propagated to newvers */
+#define __FreeBSD_version 800016 /* Master, propagated to newvers */
#ifndef LOCORE
#include <sys/types.h>
OpenPOWER on IntegriCloud