From 0a81ab50306539788e2dd0471f3b1ed5b9dcc5ef Mon Sep 17 00:00:00 2001 From: Jozsef Kadlecsik Date: Wed, 3 Jan 2018 10:57:31 +0100 Subject: Backport patch: netfilter: ipset: Convert timers to use timer_setup() --- kernel/net/netfilter/ipset/ip_set_list_set.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'kernel/net/netfilter/ipset/ip_set_list_set.c') 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; -- cgit v1.2.3