rcu: Expedited wakeups need to be fully ordered
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Sat, 4 Mar 2017 20:33:53 +0000 (12:33 -0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 18 Apr 2017 18:38:19 +0000 (11:38 -0700)
commit3c345825c899df0751b01143b159ddaefb91a220
tree97675c609e2f160a43c96eb7a41acd2be94574bd
parent2e8c28c2dd96c6f1f2d454a4e4b928385841e247
rcu: Expedited wakeups need to be fully ordered

Expedited grace periods use workqueue handlers that wake up the requesters,
but there is no lock mediating this wakeup.  Therefore, memory barriers
are required to ensure that the handler's memory references are seen by
all to occur before synchronize_*_expedited() returns to its caller.
Possibly detected by syzkaller.

Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
kernel/rcu/tree_exp.h