svn commit: r202795 - user/luigi/ipfw3-head/sys/netinet/ipfw

Luigi Rizzo luigi at FreeBSD.org
Fri Jan 22 09:50:18 UTC 2010


Author: luigi
Date: Fri Jan 22 09:50:17 2010
New Revision: 202795
URL: http://svn.freebsd.org/changeset/base/202795

Log:
  use uintptr_t for list of objects (helps with alignment,
  though a bit of a waste of space)

Modified:
  user/luigi/ipfw3-head/sys/netinet/ipfw/ip_dummynet.c

Modified: user/luigi/ipfw3-head/sys/netinet/ipfw/ip_dummynet.c
==============================================================================
--- user/luigi/ipfw3-head/sys/netinet/ipfw/ip_dummynet.c	Fri Jan 22 09:49:07 2010	(r202794)
+++ user/luigi/ipfw3-head/sys/netinet/ipfw/ip_dummynet.c	Fri Jan 22 09:50:17 2010	(r202795)
@@ -848,10 +848,9 @@ copy_fsk_list(struct copy_args *a, struc
 	int n = 0, space = sizeof(*o);
 	SLIST_FOREACH(fs, &s->fsk_list, sch_chain) {
 		if (fs->fs.fs_nr < DN_MAX_ID)
-			n++;;
+			n++;
 	}
-	/* XXX beware the alignment */
-	space += 2*n;
+	space += n * sizeof(uintptr_t);
 	D("sched %d has %d flowsets", s->sch.sched_nr, n);
 	if (a->end - *(a->start) < space)
 		return DNHT_SCAN_END;
@@ -1322,7 +1321,7 @@ do_config(void *p, int l)
 	struct dn_id *next, *o;
 	int err = 0, err2 = 0;
 	struct dn_id *arg = NULL;
-	uint32_t *a;
+	uintptr_t *a;
 
 	o = p;
 	if (o->id != DN_API_VERSION) {
@@ -1349,8 +1348,8 @@ do_config(void *p, int l)
 			break;
 
 		case DN_CMD_DELETE:
-			/* the argument is in the first uint32 after o */
-			a = (uint32_t *)(o+1);
+			/* the argument is in the first uintptr_t after o */
+			a = (uintptr_t *)(o+1);
 			if (o->len < sizeof(*o) + sizeof(*a)) {
 				err = EINVAL;
 				break;


More information about the svn-src-user mailing list