diff options
author | Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | 2014-12-10 07:34:43 +0100 |
---|---|---|
committer | Jozsef Kadlecsik <kadlec@blackhole.kfki.hu> | 2014-12-10 07:34:43 +0100 |
commit | 2ca175d78cebdf349e1616759f18511085aae01f (patch) | |
tree | f0f4284449c628d41f002f5be12cdcb251d23b99 /kernel/net/netfilter/ipset/ip_set_list_set.c | |
parent | 17f7f59cd6c5c1f120bf5586b8f4e025fb45a76e (diff) |
Call rcu_barrier() in module removal path
Diffstat (limited to 'kernel/net/netfilter/ipset/ip_set_list_set.c')
-rw-r--r-- | kernel/net/netfilter/ipset/ip_set_list_set.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/net/netfilter/ipset/ip_set_list_set.c b/kernel/net/netfilter/ipset/ip_set_list_set.c index 323115a..c30183f 100644 --- a/kernel/net/netfilter/ipset/ip_set_list_set.c +++ b/kernel/net/netfilter/ipset/ip_set_list_set.c @@ -90,7 +90,7 @@ list_set_kadd(struct ip_set *set, const struct sk_buff *skb, struct set_elem *e; int ret; - list_for_each_entry_rcu(e, &map->members, list) { + list_for_each_entry(e, &map->members, list) { if (SET_WITH_TIMEOUT(set) && ip_set_timeout_expired(ext_timeout(e, set))) continue; @@ -110,7 +110,7 @@ list_set_kdel(struct ip_set *set, const struct sk_buff *skb, struct set_elem *e; int ret; - list_for_each_entry_rcu(e, &map->members, list) { + list_for_each_entry(e, &map->members, list) { if (SET_WITH_TIMEOUT(set) && ip_set_timeout_expired(ext_timeout(e, set))) continue; @@ -673,6 +673,7 @@ list_set_init(void) static void __exit list_set_fini(void) { + rcu_barrier(); ip_set_type_unregister(&list_set_type); } |