aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2007-02-12 14:11:06 -0500
committerDavid S. Miller <davem@davemloft.net>2007-02-12 14:11:06 -0500
commita5ea6169f294bc33a762f7c1c240e3ac0f045f9e (patch)
tree1ab3c32c6eb2a54c8a2887b18193301e31d24177
parentfd706d6957b3c66ae70b4bbdb9e13993213697f7 (diff)
[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 <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/netfilter/nf_log.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c
index 07e28e089616..a3ff88dcc2ac 100644
--- a/net/netfilter/nf_log.c
+++ b/net/netfilter/nf_log.c
@@ -46,11 +46,11 @@ int nf_log_unregister_pf(int pf)
46 return -EINVAL; 46 return -EINVAL;
47 47
48 spin_lock(&nf_log_lock); 48 spin_lock(&nf_log_lock);
49 nf_logging[pf] = NULL; 49 rcu_assign_pointer(nf_logging[pf], NULL);
50 spin_unlock(&nf_log_lock); 50 spin_unlock(&nf_log_lock);
51 51
52 /* Give time to concurrent readers. */ 52 /* Give time to concurrent readers. */
53 synchronize_net(); 53 synchronize_rcu();
54 54
55 return 0; 55 return 0;
56} 56}
@@ -63,11 +63,11 @@ void nf_log_unregister_logger(struct nf_logger *logger)
63 spin_lock(&nf_log_lock); 63 spin_lock(&nf_log_lock);
64 for (i = 0; i < NPROTO; i++) { 64 for (i = 0; i < NPROTO; i++) {
65 if (nf_logging[i] == logger) 65 if (nf_logging[i] == logger)
66 nf_logging[i] = NULL; 66 rcu_assign_pointer(nf_logging[i], NULL);
67 } 67 }
68 spin_unlock(&nf_log_lock); 68 spin_unlock(&nf_log_lock);
69 69
70 synchronize_net(); 70 synchronize_rcu();
71} 71}
72EXPORT_SYMBOL(nf_log_unregister_logger); 72EXPORT_SYMBOL(nf_log_unregister_logger);
73 73