From: Patrick McHardy Date: Mon, 12 Feb 2007 19:11:06 +0000 (-0800) Subject: [NETFILTER]: nf_log: use rcu_assign_pointer for RCU protected pointer X-Git-Tag: v2.6.21-rc1~274^2~1^2~20 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a5ea6169f294bc33a762f7c1c240e3ac0f045f9e;p=linux-2.6 [NETFILTER]: nf_log: use rcu_assign_pointer for RCU protected pointer Also replace synchronize_net() calls by synchronize_rcu() since the RCU protected data is also used for sysfs. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller --- diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c index 07e28e0896..a3ff88dcc2 100644 --- a/net/netfilter/nf_log.c +++ b/net/netfilter/nf_log.c @@ -46,11 +46,11 @@ int nf_log_unregister_pf(int pf) return -EINVAL; spin_lock(&nf_log_lock); - nf_logging[pf] = NULL; + rcu_assign_pointer(nf_logging[pf], NULL); spin_unlock(&nf_log_lock); /* Give time to concurrent readers. */ - synchronize_net(); + synchronize_rcu(); return 0; } @@ -63,11 +63,11 @@ void nf_log_unregister_logger(struct nf_logger *logger) spin_lock(&nf_log_lock); for (i = 0; i < NPROTO; i++) { if (nf_logging[i] == logger) - nf_logging[i] = NULL; + rcu_assign_pointer(nf_logging[i], NULL); } spin_unlock(&nf_log_lock); - synchronize_net(); + synchronize_rcu(); } EXPORT_SYMBOL(nf_log_unregister_logger);