rcu: Mark writes to the rcu_segcblist structure's ->flags field
authorPaul E. McKenney <paulmck@kernel.org>
Tue, 4 Jan 2022 18:34:34 +0000 (10:34 -0800)
committerPaul E. McKenney <paulmck@kernel.org>
Mon, 14 Feb 2022 18:36:58 +0000 (10:36 -0800)
commitc09929031018913b5783872a8b8cdddef4a543c7
tree1a5534653c6131cdada887ca30c16ffb2d22f1e5
parentd818cc76e2b4d5f6cebf8c7ce1160d652d7e572b
rcu: Mark writes to the rcu_segcblist structure's ->flags field

KCSAN reports data races between the rcu_segcblist_clear_flags() and
rcu_segcblist_set_flags() functions, though misreporting the latter
as a call to rcu_segcblist_is_enabled() from call_rcu().  This commit
converts the updates of this field to WRITE_ONCE(), relying on the
resulting unmarked reads to continue to detect buggy concurrent writes
to this field.

Reported-by: Zhouyi Zhou <zhouzhouyi@gmail.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Cc: Frederic Weisbecker <frederic@kernel.org>
kernel/rcu/rcu_segcblist.h