diff options
author | 2014-07-09 11:22:52 +0000 | |
---|---|---|
committer | 2014-07-09 11:22:52 +0000 | |
commit | 9918f05b1f3ebb0128e8aff87da27ca656b3ea36 (patch) | |
tree | 4f45382905cc6576f080eee12644475029bb577b /sys | |
parent | Enable specifying the filesystem of interest by the duid. (diff) | |
download | wireguard-openbsd-9918f05b1f3ebb0128e8aff87da27ca656b3ea36.tar.xz wireguard-openbsd-9918f05b1f3ebb0128e8aff87da27ca656b3ea36.zip |
now that mclgeti doesnt do the rx ring accounting, cluster allocation
doesnt need to know which ifp an mbuf was allocated on so it can uncount
it on free.
while here, remove the ext_backend field which identifies the pool the
cluster came from and use ext_arg instead.
ok henning@ mpi@
Diffstat (limited to 'sys')
-rw-r--r-- | sys/kern/uipc_mbuf.c | 13 | ||||
-rw-r--r-- | sys/sys/mbuf.h | 6 |
2 files changed, 6 insertions, 13 deletions
diff --git a/sys/kern/uipc_mbuf.c b/sys/kern/uipc_mbuf.c index a03fa007b76..0b6964b008d 100644 --- a/sys/kern/uipc_mbuf.c +++ b/sys/kern/uipc_mbuf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: uipc_mbuf.c,v 1.188 2014/07/08 07:10:12 dlg Exp $ */ +/* $OpenBSD: uipc_mbuf.c,v 1.189 2014/07/09 11:22:53 dlg Exp $ */ /* $NetBSD: uipc_mbuf.c,v 1.15.4.1 1996/06/13 17:11:44 cgd Exp $ */ /* @@ -327,9 +327,7 @@ m_clget(struct mbuf *m, int how, struct ifnet *ifp, u_int pktlen) m->m_flags |= M_EXT|M_CLUSTER; m->m_ext.ext_size = mclpools[pi].pr_size; m->m_ext.ext_free = NULL; - m->m_ext.ext_arg = NULL; - m->m_ext.ext_backend = pi; - m->m_ext.ext_ifidx = 0; + m->m_ext.ext_arg = &mclpools[pi]; MCLINITREFERENCE(m); return (m); } @@ -378,8 +376,7 @@ m_extfree(struct mbuf *m) m->m_ext.ext_prevref->m_ext.ext_nextref = m->m_ext.ext_nextref; } else if (m->m_flags & M_CLUSTER) { - pool_put(&mclpools[m->m_ext.ext_backend], - m->m_ext.ext_buf); + pool_put(m->m_ext.ext_arg, m->m_ext.ext_buf); } else if (m->m_ext.ext_free) (*(m->m_ext.ext_free))(m->m_ext.ext_buf, m->m_ext.ext_size, m->m_ext.ext_arg); @@ -1238,9 +1235,7 @@ m_print(void *v, if (m->m_flags & M_EXT) { (*pr)("m_ext.ext_buf: %p\tm_ext.ext_size: %u\n", m->m_ext.ext_buf, m->m_ext.ext_size); - (*pr)("m_ext.ext_type: %x\tm_ext.ext_backend: %i\n", - m->m_ext.ext_type, m->m_ext.ext_backend); - (*pr)("m_ext.ext_ifidx: %u\n", m->m_ext.ext_ifidx); + (*pr)("m_ext.ext_type: %x\n", m->m_ext.ext_type); (*pr)("m_ext.ext_free: %p\tm_ext.ext_arg: %p\n", m->m_ext.ext_free, m->m_ext.ext_arg); (*pr)("m_ext.ext_nextref: %p\tm_ext.ext_prevref: %p\n", diff --git a/sys/sys/mbuf.h b/sys/sys/mbuf.h index 192cf1c4aee..a3144f5e344 100644 --- a/sys/sys/mbuf.h +++ b/sys/sys/mbuf.h @@ -1,4 +1,4 @@ -/* $OpenBSD: mbuf.h,v 1.177 2014/07/08 07:10:12 dlg Exp $ */ +/* $OpenBSD: mbuf.h,v 1.178 2014/07/09 11:22:52 dlg Exp $ */ /* $NetBSD: mbuf.h,v 1.19 1996/02/09 18:25:14 christos Exp $ */ /* @@ -126,11 +126,9 @@ struct mbuf_ext { caddr_t ext_buf; /* start of buffer */ /* free routine if not the usual */ void (*ext_free)(caddr_t, u_int, void *); - void *ext_arg; /* argument for ext_free */ + void *ext_arg; u_int ext_size; /* size of buffer, for ext_free */ int ext_type; - u_short ext_ifidx; /* index of the interface */ - int ext_backend; /* backend pool the storage came from */ struct mbuf *ext_nextref; struct mbuf *ext_prevref; #ifdef DEBUG |