summaryrefslogtreecommitdiffstats
path: root/kernel/net/netfilter/ipset/ip_set_list_set.c
diff options
context:
space:
mode:
authorJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2018-01-03 10:57:31 +0100
committerJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2018-01-03 10:57:31 +0100
commit0a81ab50306539788e2dd0471f3b1ed5b9dcc5ef (patch)
tree995fcac0cdf514dcd941da9a10d0ab580e74871b /kernel/net/netfilter/ipset/ip_set_list_set.c
parentd71dd93599b932693f045301424c2276cd25a87e (diff)
Backport patch: netfilter: ipset: Convert timers to use timer_setup()
Diffstat (limited to 'kernel/net/netfilter/ipset/ip_set_list_set.c')
-rw-r--r--kernel/net/netfilter/ipset/ip_set_list_set.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/kernel/net/netfilter/ipset/ip_set_list_set.c b/kernel/net/netfilter/ipset/ip_set_list_set.c
index 2fff6b5..55ecea2 100644
--- a/kernel/net/netfilter/ipset/ip_set_list_set.c
+++ b/kernel/net/netfilter/ipset/ip_set_list_set.c
@@ -44,6 +44,9 @@ struct set_adt_elem {
struct list_set {
u32 size; /* size of set list array */
struct timer_list gc; /* garbage collection */
+#ifdef HAVE_TIMER_SETUP
+ struct ip_set *set; /* attached to this ip_set */
+#endif
struct net *net; /* namespace */
struct list_head members; /* the set members */
};
@@ -568,10 +571,9 @@ static const struct ip_set_type_variant set_variant = {
};
static void
-list_set_gc(unsigned long ul_set)
+list_set_gc(GC_ARG)
{
- struct ip_set *set = (struct ip_set *)ul_set;
- struct list_set *map = set->data;
+ INIT_GC_VARS(list_set, map);
spin_lock_bh(&set->lock);
set_cleanup_entries(set);
@@ -582,11 +584,11 @@ list_set_gc(unsigned long ul_set)
}
static void
-list_set_gc_init(struct ip_set *set, void (*gc)(unsigned long ul_set))
+list_set_gc_init(struct ip_set *set, void (*gc)(GC_ARG))
{
struct list_set *map = set->data;
- setup_timer(&map->gc, gc, (unsigned long)set);
+ TIMER_SETUP(&map->gc, gc);
mod_timer(&map->gc, jiffies + IPSET_GC_PERIOD(set->timeout) * HZ);
}
@@ -603,6 +605,9 @@ init_list_set(struct net *net, struct ip_set *set, u32 size)
map->size = size;
map->net = net;
+#ifdef HAVE_TIMER_SETUP
+ map->set = set;
+#endif
INIT_LIST_HEAD(&map->members);
set->data = map;