summaryrefslogtreecommitdiffstats
path: root/kernel/rcutree.c
diff options
context:
space:
mode:
authorPaul E. McKenney <paul.mckenney@linaro.org>2012-08-13 16:34:12 -0700
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2012-09-23 07:42:51 -0700
commitfdab649b1aa732cd6e79654349088465cdff49af (patch)
tree5a8b75266eb451b0766f2c622744ae984ac7c3b5 /kernel/rcutree.c
parentc96ea7cfdd88d0a67c970502bc5313fede34b86b (diff)
downloadlinux-fdab649b1aa732cd6e79654349088465cdff49af.tar.gz
linux-fdab649b1aa732cd6e79654349088465cdff49af.tar.bz2
linux-fdab649b1aa732cd6e79654349088465cdff49af.zip
rcu: Remove redundant memory barrier from __call_rcu()
The first memory barrier in __call_rcu() is supposed to order any updates done beforehand by the caller against the actual queuing of the callback. However, the second memory barrier (which is intended to order incrementing the queue lengths before queuing the callback) is also between the caller's updates and the queuing of the callback. The second memory barrier can therefore serve both purposes. This commit therefore removes the first memory barrier. Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Diffstat (limited to 'kernel/rcutree.c')
-rw-r--r--kernel/rcutree.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/kernel/rcutree.c b/kernel/rcutree.c
index 98f275296c6d..ba4f4b4c2382 100644
--- a/kernel/rcutree.c
+++ b/kernel/rcutree.c
@@ -1922,8 +1922,6 @@ __call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu),
head->func = func;
head->next = NULL;
- smp_mb(); /* Ensure RCU update seen before callback registry. */
-
/*
* Opportunistically note grace-period endings and beginnings.
* Note that we might see a beginning right after we see an