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:
Waiman Long 2022-03-24 17:15:58 -04:00
parent 8b492f5404
commit 7411986c54
1 changed files with 1 additions and 1 deletions

View File

@ -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;
}