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