[netfilter-cvslog] r4138 - in trunk/patch-o-matic-ng/patchlets/set: linux/net/ipv4/netfilter linux-2.6/net/ipv4/netfilter

kadlec at netfilter.org kadlec at netfilter.org
Wed Jul 20 11:15:15 CEST 2005


Author: kadlec at netfilter.org
Date: 2005-07-20 11:15:15 +0200 (Wed, 20 Jul 2005)
New Revision: 4138

Modified:
   trunk/patch-o-matic-ng/patchlets/set/linux-2.6/net/ipv4/netfilter/ip_set_iptree.c
   trunk/patch-o-matic-ng/patchlets/set/linux/net/ipv4/netfilter/ip_set_iptree.c
Log:
Several bugs in ip_set_iptree.c fixed:
 - Jiffies rollover bug in ip_set_iptree reported and fixed by Rob Nielsen
 - Compiler warning in the non-SMP case fixed (Marcus Sundberg)
 - slab cache names shrunk in order to be compatible with 2.4.* (Marcus
   Sundberg)


Modified: trunk/patch-o-matic-ng/patchlets/set/linux/net/ipv4/netfilter/ip_set_iptree.c
===================================================================
--- trunk/patch-o-matic-ng/patchlets/set/linux/net/ipv4/netfilter/ip_set_iptree.c	2005-07-20 08:47:22 UTC (rev 4137)
+++ trunk/patch-o-matic-ng/patchlets/set/linux/net/ipv4/netfilter/ip_set_iptree.c	2005-07-20 09:15:15 UTC (rev 4138)
@@ -17,6 +17,7 @@
 #include <linux/errno.h>
 #include <asm/uaccess.h>
 #include <asm/bitops.h>
+#include <linux/interrupt.h>
 #include <linux/spinlock.h>
 
 #include <linux/netfilter_ipv4/ip_set_iptree.h>
@@ -60,7 +61,7 @@
 	TESTIP_WALK(btree, b, ctree);
 	TESTIP_WALK(ctree, c, dtree);
 	DP("%lu %lu", dtree->expires[d], jiffies);
-	return !!(map->timeout ? (dtree->expires[d] > jiffies)
+	return !!(map->timeout ? (time_after(dtree->expires[d], jiffies))
 			       : dtree->expires[d]);
 }
 
@@ -133,7 +134,7 @@
 	ADDIP_WALK(btree, b, ctree, struct ip_set_iptreec, branch_cachep);
 	ADDIP_WALK(ctree, c, dtree, struct ip_set_iptreed, leaf_cachep);
 	if (dtree->expires[d]
-	    && (!map->timeout || dtree->expires[d] > jiffies))
+	    && (!map->timeout || time_after(dtree->expires[d], jiffies)))
 	    	ret = -EEXIST;
 	dtree->expires[d] = map->timeout ? (timeout * HZ + jiffies) : 1;
 	DP("%u %lu", d, dtree->expires[d]);
@@ -403,7 +404,7 @@
 	LOOP_WALK_BEGIN(ctree, c, dtree);
 	for (d = 0; d < 255; d++) {
 		if (dtree->expires[d]
-		    && (!map->timeout || dtree->expires[d] > jiffies))
+		    && (!map->timeout || time_after(dtree->expires[d], jiffies)))
 		    	count++;
 	}
 	LOOP_WALK_END;
@@ -429,7 +430,7 @@
 	LOOP_WALK_BEGIN(ctree, c, dtree);
 	for (d = 0; d < 255; d++) {
 		if (dtree->expires[d]
-		    && (!map->timeout || dtree->expires[d] > jiffies)) {
+		    && (!map->timeout || time_after(dtree->expires[d], jiffies))) {
 		    	entry = (struct ip_set_req_iptree *)(data + offset);
 		    	entry->ip = ((a << 24) | (b << 16) | (c << 8) | d);
 		    	entry->timeout = !map->timeout ? 0 
@@ -471,19 +472,19 @@
 {
 	int ret;
 	
-	branch_cachep = kmem_cache_create("ip_set_iptree_branches",
+	branch_cachep = kmem_cache_create("ip_set_iptreeb",
 				sizeof(struct ip_set_iptreeb),
 				0, 0, NULL, NULL);
 	if (!branch_cachep) {
-		printk(KERN_ERR "Unable to create ip_set_iptree_branches slab cache\n");
+		printk(KERN_ERR "Unable to create ip_set_iptreeb slab cache\n");
 		ret = -ENOMEM;
 		goto out;
 	}
-	leaf_cachep = kmem_cache_create("ip_set_iptree_leaves",
+	leaf_cachep = kmem_cache_create("ip_set_iptreed",
 				sizeof(struct ip_set_iptreed),
 				0, 0, NULL, NULL);
 	if (!leaf_cachep) {
-		printk(KERN_ERR "Unable to create ip_set_iptree_leaves slab cache\n");
+		printk(KERN_ERR "Unable to create ip_set_iptreed slab cache\n");
 		ret = -ENOMEM;
 		goto free_branch;
 	}

Modified: trunk/patch-o-matic-ng/patchlets/set/linux-2.6/net/ipv4/netfilter/ip_set_iptree.c
===================================================================
--- trunk/patch-o-matic-ng/patchlets/set/linux-2.6/net/ipv4/netfilter/ip_set_iptree.c	2005-07-20 08:47:22 UTC (rev 4137)
+++ trunk/patch-o-matic-ng/patchlets/set/linux-2.6/net/ipv4/netfilter/ip_set_iptree.c	2005-07-20 09:15:15 UTC (rev 4138)
@@ -60,7 +60,7 @@
 	TESTIP_WALK(btree, b, ctree);
 	TESTIP_WALK(ctree, c, dtree);
 	DP("%lu %lu", dtree->expires[d], jiffies);
-	return !!(map->timeout ? (dtree->expires[d] > jiffies)
+	return !!(map->timeout ? (time_after(dtree->expires[d], jiffies))
 			       : dtree->expires[d]);
 }
 
@@ -133,7 +133,7 @@
 	ADDIP_WALK(btree, b, ctree, struct ip_set_iptreec, branch_cachep);
 	ADDIP_WALK(ctree, c, dtree, struct ip_set_iptreed, leaf_cachep);
 	if (dtree->expires[d]
-	    && (!map->timeout || dtree->expires[d] > jiffies))
+	    && (!map->timeout || time_after(dtree->expires[d], jiffies)))
 	    	ret = -EEXIST;
 	dtree->expires[d] = map->timeout ? (timeout * HZ + jiffies) : 1;
 	DP("%u %lu", d, dtree->expires[d]);
@@ -403,7 +403,7 @@
 	LOOP_WALK_BEGIN(ctree, c, dtree);
 	for (d = 0; d < 255; d++) {
 		if (dtree->expires[d]
-		    && (!map->timeout || dtree->expires[d] > jiffies))
+		    && (!map->timeout || time_after(dtree->expires[d], jiffies)))
 		    	count++;
 	}
 	LOOP_WALK_END;
@@ -429,7 +429,7 @@
 	LOOP_WALK_BEGIN(ctree, c, dtree);
 	for (d = 0; d < 255; d++) {
 		if (dtree->expires[d]
-		    && (!map->timeout || dtree->expires[d] > jiffies)) {
+		    && (!map->timeout || time_after(dtree->expires[d], jiffies))) {
 		    	entry = (struct ip_set_req_iptree *)(data + offset);
 		    	entry->ip = ((a << 24) | (b << 16) | (c << 8) | d);
 		    	entry->timeout = !map->timeout ? 0 
@@ -471,19 +471,19 @@
 {
 	int ret;
 	
-	branch_cachep = kmem_cache_create("ip_set_iptree_branches",
+	branch_cachep = kmem_cache_create("ip_set_iptreeb",
 				sizeof(struct ip_set_iptreeb),
 				0, 0, NULL, NULL);
 	if (!branch_cachep) {
-		printk(KERN_ERR "Unable to create ip_set_iptree_branches slab cache\n");
+		printk(KERN_ERR "Unable to create ip_set_iptreeb slab cache\n");
 		ret = -ENOMEM;
 		goto out;
 	}
-	leaf_cachep = kmem_cache_create("ip_set_iptree_leaves",
+	leaf_cachep = kmem_cache_create("ip_set_iptreed",
 				sizeof(struct ip_set_iptreed),
 				0, 0, NULL, NULL);
 	if (!leaf_cachep) {
-		printk(KERN_ERR "Unable to create ip_set_iptree_leaves slab cache\n");
+		printk(KERN_ERR "Unable to create ip_set_iptreed slab cache\n");
 		ret = -ENOMEM;
 		goto free_branch;
 	}




More information about the netfilter-cvslog mailing list