]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
rcu: Use *_ONCE() to protect lockless ->expmask accesses
authorPaul E. McKenney <paulmck@kernel.org>
Tue, 8 Oct 2019 01:53:18 +0000 (18:53 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 11 Feb 2020 12:35:08 +0000 (04:35 -0800)
commita523031513b755ab7b3b556b78ff0a385cc3498c
tree03a204486088f9c551141ef22723a74d91e69cd9
parentd42b2370f28abda0c4149be4ff0361e97ddd16d8
rcu: Use *_ONCE() to protect lockless ->expmask accesses

commit 15c7c972cd26d89a26788e609c53b5a465324a6c upstream.

The rcu_node structure's ->expmask field is accessed locklessly when
starting a new expedited grace period and when reporting an expedited
RCU CPU stall warning.  This commit therefore handles the former by
taking a snapshot of ->expmask while the lock is held and the latter
by applying READ_ONCE() to lockless reads and WRITE_ONCE() to the
corresponding updates.

Link: https://lore.kernel.org/lkml/CANpmjNNmSOagbTpffHr4=Yedckx9Rm2NuGqC9UqE+AOz5f1-ZQ@mail.gmail.com
Reported-by: syzbot+134336b86f728d6e55a0@syzkaller.appspotmail.com
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Acked-by: Marco Elver <elver@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
kernel/rcu/tree_exp.h