diff --git a/[refs] b/[refs] index df0f4283023d..e742b8e460eb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fd706d6957b3c66ae70b4bbdb9e13993213697f7 +refs/heads/master: a5ea6169f294bc33a762f7c1c240e3ac0f045f9e diff --git a/trunk/net/netfilter/nf_log.c b/trunk/net/netfilter/nf_log.c index 07e28e089616..a3ff88dcc2ac 100644 --- a/trunk/net/netfilter/nf_log.c +++ b/trunk/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);