rcu: Mark sync_sched_exp_online_cleanup() ->cpu_no_qs.b.exp load
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2065994 commit 5401cc5264fff75aea10cf44b380b265d18d17ba Author: Paul E. McKenney <paulmck@kernel.org> Date: Tue, 28 Sep 2021 11:06:35 -0700 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> Signed-off-by: Waiman Long <longman@redhat.com>
This commit is contained in:
parent
8b492f5404
commit
7411986c54
|
@ -759,7 +759,7 @@ static void sync_sched_exp_online_cleanup(int cpu)
|
|||
my_cpu = get_cpu();
|
||||
/* Quiescent state either not needed or already requested, leave. */
|
||||
if (!(READ_ONCE(rnp->expmask) & rdp->grpmask) ||
|
||||
rdp->cpu_no_qs.b.exp) {
|
||||
READ_ONCE(rdp->cpu_no_qs.b.exp)) {
|
||||
put_cpu();
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue