nf_conntrack_all() contains an smp_rmb() after spin_unlock_wait(). This was done to allow safe backporting. Commit 2c6100227116 ("locking/qspinlock: Fix spin_unlock_wait() some more") (and the commits for the other archs) ensure that spin_unlock_wait() is an ACQUIRE. Therefore the smp_rmb() after spin_unlock_wait() can be removed. Not for stable! Signed-off-by: Manfred Spraul <manfred@xxxxxxxxxxxxxxxx> Cc: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> Cc: netfilter-devel@xxxxxxxxxxxxxxx --- net/netfilter/nf_conntrack_core.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c index 3847f09..c8a2d26 100644 --- a/net/netfilter/nf_conntrack_core.c +++ b/net/netfilter/nf_conntrack_core.c @@ -153,11 +153,6 @@ static void nf_conntrack_all_lock(void) for (i = 0; i < CONNTRACK_LOCKS; i++) { spin_unlock_wait(&nf_conntrack_locks[i]); } - /* spin_unlock_wait() is at least a control barrier. - * Add smp_rmb() to upgrade it to an ACQUIRE, it must - * pair with the spin_unlock(&nf_conntrack_locks[]) - */ - smp_rmb(); } static void nf_conntrack_all_unlock(void) -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html