c847f14217
The NOCB follower wakeup ordering depends on the store to the tail pointer happening before the wakeup. However, because atomic_long_add() does not return a value, it does not provide ordering guarantees, and the locking in wake_up() only guarantees that the store will happen before the unlock, which might be too late. Even though this is only a theoretical issue, this commit adds a smp_mb__after_atomic() after the final atomic_long_add() to provide the needed ordering guarantee. Reported-by: Amit Shah <amit.shah@redhat.com> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Tested-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
||
---|---|---|
.. | ||
Makefile | ||
rcu.h | ||
rcutorture.c | ||
srcu.c | ||
tiny.c | ||
tiny_plugin.h | ||
tree.c | ||
tree.h | ||
tree_plugin.h | ||
tree_trace.c | ||
update.c |