svn commit: r236553 - projects/pf/head/sys/contrib/pf/net
Gleb Smirnoff
glebius at FreeBSD.org
Mon Jun 4 09:55:48 UTC 2012
Author: glebius
Date: Mon Jun 4 09:55:47 2012
New Revision: 236553
URL: http://svn.freebsd.org/changeset/base/236553
Log:
struct pf_altq doesn't need a separate uma(9) zone, they are
allocated only at configuration stage.
Modified:
projects/pf/head/sys/contrib/pf/net/pf.c
projects/pf/head/sys/contrib/pf/net/pf_ioctl.c
projects/pf/head/sys/contrib/pf/net/pfvar.h
Modified: projects/pf/head/sys/contrib/pf/net/pf.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pf.c Mon Jun 4 09:47:19 2012 (r236552)
+++ projects/pf/head/sys/contrib/pf/net/pf.c Mon Jun 4 09:55:47 2012 (r236553)
@@ -195,7 +195,6 @@ VNET_DEFINE(uma_zone_t, pf_rule_z);
VNET_DEFINE(uma_zone_t, pf_pooladdr_z);
VNET_DEFINE(uma_zone_t, pf_state_z);
VNET_DEFINE(uma_zone_t, pf_state_key_z);
-VNET_DEFINE(uma_zone_t, pf_altq_z);
#define V_pf_sources_z VNET(pf_sources_z)
@@ -704,8 +703,6 @@ pf_initialize()
mtx_init(&sh->lock, "pf_srchash", NULL, MTX_DEF);
/* ALTQ */
- V_pf_altq_z = uma_zcreate("pf altq", sizeof(struct pf_altq),
- NULL, NULL, NULL, NULL, UMA_ALIGN_PTR, 0);
TAILQ_INIT(&V_pf_altqs[0]);
TAILQ_INIT(&V_pf_altqs[1]);
TAILQ_INIT(&V_pf_pabuf);
@@ -776,7 +773,6 @@ pf_cleanup()
uma_zdestroy(V_pf_rule_z);
uma_zdestroy(V_pf_state_z);
uma_zdestroy(V_pf_state_key_z);
- uma_zdestroy(V_pf_altq_z);
uma_zdestroy(V_pf_pooladdr_z);
uma_zdestroy(V_pfr_ktable_z);
uma_zdestroy(V_pfr_kentry_z);
Modified: projects/pf/head/sys/contrib/pf/net/pf_ioctl.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pf_ioctl.c Mon Jun 4 09:47:19 2012 (r236552)
+++ projects/pf/head/sys/contrib/pf/net/pf_ioctl.c Mon Jun 4 09:55:47 2012 (r236553)
@@ -158,6 +158,7 @@ VNET_DEFINE(struct pf_tags, pf_tags);
#define V_pf_qids VNET(pf_qids)
VNET_DEFINE(struct pf_tags, pf_qids);
MALLOC_DEFINE(M_PFTAG, "pf tags", "pf tags");
+MALLOC_DEFINE(M_PFALTQ, "pf(4) altq", "pf(4) altq configuration db");
#if (PF_QNAME_SIZE != PF_TAG_NAME_SIZE)
#error PF_QNAME_SIZE must be equal to PF_TAG_NAME_SIZE
@@ -538,7 +539,7 @@ pf_begin_altq(u_int32_t *ticket)
error = altq_remove(altq);
} else
pf_qid_unref(altq->qid);
- uma_zfree(V_pf_altq_z, altq);
+ free(altq, M_PFALTQ);
}
if (error)
return (error);
@@ -566,7 +567,7 @@ pf_rollback_altq(u_int32_t ticket)
error = altq_remove(altq);
} else
pf_qid_unref(altq->qid);
- uma_zfree(V_pf_altq_z, altq);
+ free(altq, M_PFALTQ);
}
V_altqs_inactive_open = 0;
return (error);
@@ -619,7 +620,7 @@ pf_commit_altq(u_int32_t ticket)
error = err;
} else
pf_qid_unref(altq->qid);
- uma_zfree(V_pf_altq_z, altq);
+ free(altq, M_PFALTQ);
}
V_altqs_inactive_open = 0;
@@ -695,7 +696,7 @@ pf_altq_ifnet_event(struct ifnet *ifp, i
/* Copy the current active set */
TAILQ_FOREACH(a1, V_pf_altqs_active, entries) {
- a2 = uma_zalloc(V_pf_altq_z, M_NOWAIT);
+ a2 = malloc(sizeof(*a2), M_PFALTQ, M_NOWAIT);
if (a2 == NULL) {
error = ENOMEM;
break;
@@ -705,7 +706,7 @@ pf_altq_ifnet_event(struct ifnet *ifp, i
if (a2->qname[0] != 0) {
if ((a2->qid = pf_qname2qid(a2->qname)) == 0) {
error = EBUSY;
- uma_zfree(V_pf_altq_z, a2);
+ free(a2, M_PFALTQ);
break;
}
a2->altq_disc = NULL;
@@ -729,7 +730,7 @@ pf_altq_ifnet_event(struct ifnet *ifp, i
error = EBUSY;
if (error) {
- uma_zfree(V_pf_altq_z, a2);
+ free(a2, M_PFALTQ);
break;
}
}
@@ -2039,14 +2040,14 @@ DIOCGETSTATES_full:
struct pf_altq *altq, *a;
struct ifnet *ifp;
- altq = uma_zalloc(V_pf_altq_z, M_WAITOK);
+ altq = malloc(sizeof(*altq), M_PFALTQ, M_WAITOK);
bcopy(&pa->altq, altq, sizeof(struct pf_altq));
altq->local_flags = 0;
PF_RULES_WLOCK();
if (pa->ticket != V_ticket_altqs_inactive) {
PF_RULES_WUNLOCK();
- uma_zfree(V_pf_altq_z, altq);
+ free(altq, M_PFALTQ);
error = EBUSY;
break;
}
@@ -2059,7 +2060,7 @@ DIOCGETSTATES_full:
if ((altq->qid = pf_qname2qid(altq->qname)) == 0) {
PF_RULES_WUNLOCK();
error = EBUSY;
- uma_zfree(V_pf_altq_z, altq);
+ free(altq, M_PFALTQ);
break;
}
altq->altq_disc = NULL;
@@ -2079,7 +2080,7 @@ DIOCGETSTATES_full:
if (error) {
PF_RULES_WUNLOCK();
- uma_zfree(V_pf_altq_z, altq);
+ free(altq, M_PFALTQ);
break;
}
Modified: projects/pf/head/sys/contrib/pf/net/pfvar.h
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/pfvar.h Mon Jun 4 09:47:19 2012 (r236552)
+++ projects/pf/head/sys/contrib/pf/net/pfvar.h Mon Jun 4 09:55:47 2012 (r236553)
@@ -1734,8 +1734,6 @@ VNET_DECLARE(uma_zone_t, pf_state_z);
#define V_pf_state_z VNET(pf_state_z)
VNET_DECLARE(uma_zone_t, pf_state_key_z);
#define V_pf_state_key_z VNET(pf_state_key_z)
-VNET_DECLARE(uma_zone_t, pf_altq_z);
-#define V_pf_altq_z VNET(pf_altq_z)
VNET_DECLARE(uma_zone_t, pf_pooladdr_z);
#define V_pf_pooladdr_z VNET(pf_pooladdr_z)
VNET_DECLARE(uma_zone_t, pfr_ktable_z);
More information about the svn-src-projects
mailing list