summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Mc Guire <hofrat@osadl.org>2016-03-14 14:39:02 +0300
committerPablo Neira Ayuso <pablo@netfilter.org>2016-03-15 03:10:42 +0300
commite39365be031e37b229f745ea49db0b25e82436fa (patch)
treeed52dc92bccaca86e0aeb003d22f56b1476bba11
parent05752523e56502cd9975aec0a2ded465d51a71f3 (diff)
downloadlinux-e39365be031e37b229f745ea49db0b25e82436fa.tar.xz
netfilter: nf_conntrack: consolidate lock/unlock into unlock_wait
The spin_lock()/spin_unlock() is synchronizing on the nf_conntrack_locks_all_lock which is equivalent to spin_unlock_wait() but the later should be more efficient. Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r--net/netfilter/nf_conntrack_core.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
index f60b4fdeeb8c..afde5f5e728a 100644
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
@@ -74,8 +74,7 @@ void nf_conntrack_lock(spinlock_t *lock) __acquires(lock)
spin_lock(lock);
while (unlikely(nf_conntrack_locks_all)) {
spin_unlock(lock);
- spin_lock(&nf_conntrack_locks_all_lock);
- spin_unlock(&nf_conntrack_locks_all_lock);
+ spin_unlock_wait(&nf_conntrack_locks_all_lock);
spin_lock(lock);
}
}
@@ -121,8 +120,7 @@ static void nf_conntrack_all_lock(void)
nf_conntrack_locks_all = true;
for (i = 0; i < CONNTRACK_LOCKS; i++) {
- spin_lock(&nf_conntrack_locks[i]);
- spin_unlock(&nf_conntrack_locks[i]);
+ spin_unlock_wait(&nf_conntrack_locks[i]);
}
}