diff options
-rw-r--r-- | share/man/man9/mbuf.9 | 5 | ||||
-rw-r--r-- | sys/compat/ndis/kern_ndis.c | 2 | ||||
-rw-r--r-- | sys/dev/cxgb/cxgb_sge.c | 3 | ||||
-rw-r--r-- | sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c | 3 | ||||
-rw-r--r-- | sys/dev/hatm/if_hatm_intr.c | 4 | ||||
-rw-r--r-- | sys/dev/iscsi/initiator/isc_soc.c | 2 | ||||
-rw-r--r-- | sys/dev/lge/if_lge.c | 2 | ||||
-rw-r--r-- | sys/dev/msk/if_msk.c | 4 | ||||
-rw-r--r-- | sys/dev/nfe/if_nfe.c | 2 | ||||
-rw-r--r-- | sys/dev/patm/if_patm_rx.c | 4 | ||||
-rw-r--r-- | sys/dev/sk/if_sk.c | 2 | ||||
-rw-r--r-- | sys/dev/ti/if_ti.c | 3 | ||||
-rw-r--r-- | sys/dev/wpi/if_wpi.c | 6 | ||||
-rw-r--r-- | sys/kern/kern_mbuf.c | 6 | ||||
-rw-r--r-- | sys/kern/uipc_cow.c | 4 | ||||
-rw-r--r-- | sys/kern/uipc_mbuf.c | 15 | ||||
-rw-r--r-- | sys/kern/uipc_syscalls.c | 2 | ||||
-rw-r--r-- | sys/pci/if_wb.c | 4 | ||||
-rw-r--r-- | sys/sys/mbuf.h | 11 | ||||
-rw-r--r-- | sys/sys/param.h | 2 |
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> |