Skip to content

Commit 5401cc5

Browse files
committed
rcu: Mark sync_sched_exp_online_cleanup() ->cpu_no_qs.b.exp load
The sync_sched_exp_online_cleanup() is called from rcutree_online_cpu(), which can be invoked with interrupts enabled. This means that the ->cpu_no_qs.b.exp field is subject to data races from the rcu_exp_handler() IPI handler, so this commit marks the load from that field. Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
1 parent 6120b72 commit 5401cc5

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

kernel/rcu/tree_exp.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -759,7 +759,7 @@ static void sync_sched_exp_online_cleanup(int cpu)
759759
my_cpu = get_cpu();
760760
/* Quiescent state either not needed or already requested, leave. */
761761
if (!(READ_ONCE(rnp->expmask) & rdp->grpmask) ||
762-
rdp->cpu_no_qs.b.exp) {
762+
READ_ONCE(rdp->cpu_no_qs.b.exp)) {
763763
put_cpu();
764764
return;
765765
}

0 commit comments

Comments
 (0)