summaryrefslogtreecommitdiffstats
path: root/kernel/net
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/net')
-rw-r--r--kernel/net/netfilter/ipset/ip_set_hash_netiface.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/kernel/net/netfilter/ipset/ip_set_hash_netiface.c b/kernel/net/netfilter/ipset/ip_set_hash_netiface.c
index 3f64a66..788825b 100644
--- a/kernel/net/netfilter/ipset/ip_set_hash_netiface.c
+++ b/kernel/net/netfilter/ipset/ip_set_hash_netiface.c
@@ -46,6 +46,14 @@ struct iface_node {
static void
rbtree_destroy(struct rb_root *root)
{
+#ifdef HAVE_RBTREE_POSTORDER_FOR_EACH_ENTRY_SAFE
+ struct iface_node *node, *next;
+
+ rbtree_postorder_for_each_entry_safe(node, next, root, node)
+ kfree(node);
+
+ *root = RB_ROOT;
+#else
struct rb_node *p, *n = root->rb_node;
struct iface_node *node;
@@ -71,6 +79,7 @@ rbtree_destroy(struct rb_root *root)
kfree(node);
n = p;
}
+#endif
}
static int