From 92cf76b97f9ffa7ec56255d21c2153d7dd6682d0 Mon Sep 17 00:00:00 2001 From: Jozsef Kadlecsik Date: Thu, 10 Nov 2016 11:11:32 +0100 Subject: Revert patch "Correct rcu_dereference_bh_nfnl() usage" The susbsystem param cannot be used to rely on subsystem mutex locking because the call is used in netlink dump context as well. Signed-off-by: Jozsef Kadlecsik --- kernel/net/netfilter/ipset/ip_set_hash_gen.h | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'kernel/net/netfilter') diff --git a/kernel/net/netfilter/ipset/ip_set_hash_gen.h b/kernel/net/netfilter/ipset/ip_set_hash_gen.h index c9f0db6..673c7aa 100644 --- a/kernel/net/netfilter/ipset/ip_set_hash_gen.h +++ b/kernel/net/netfilter/ipset/ip_set_hash_gen.h @@ -17,9 +17,7 @@ #define ipset_dereference_protected(p, set) \ __ipset_dereference_protected(p, spin_is_locked(&(set)->lock)) -#ifndef rcu_dereference_bh_nfnl -#define rcu_dereference_bh_nfnl(p, ss) rcu_dereference_bh_check(p, 1) -#endif +#define rcu_dereference_bh_nfnl(p) rcu_dereference_bh_check(p, 1) /* Hashing which uses arrays to resolve clashing. The hash table is resized * (doubled) when searching becomes too long. @@ -570,7 +568,7 @@ mtype_resize(struct ip_set *set, bool retried) return -ENOMEM; #endif rcu_read_lock_bh(); - orig = rcu_dereference_bh_nfnl(h->table, NFNL_SUBSYS_IPSET); + orig = rcu_dereference_bh_nfnl(h->table); htable_bits = orig->htable_bits; rcu_read_unlock_bh(); @@ -1051,7 +1049,7 @@ mtype_head(struct ip_set *set, struct sk_buff *skb) u8 htable_bits; rcu_read_lock_bh(); - t = rcu_dereference_bh_nfnl(h->table, NFNL_SUBSYS_IPSET); + t = rcu_dereference_bh_nfnl(h->table); memsize = mtype_ahash_memsize(h, t) + set->ext_size; htable_bits = t->htable_bits; rcu_read_unlock_bh(); @@ -1094,7 +1092,7 @@ mtype_uref(struct ip_set *set, struct netlink_callback *cb, bool start) if (start) { rcu_read_lock_bh(); - t = rcu_dereference_bh_nfnl(h->table, NFNL_SUBSYS_IPSET); + t = rcu_dereference_bh_nfnl(h->table); atomic_inc(&t->uref); cb->args[IPSET_CB_PRIVATE] = (unsigned long)t; rcu_read_unlock_bh(); -- cgit v1.2.3