incby = 1;
        } else if (tick_nohz_full_cpu(rdp->cpu) &&
                   rdp->dynticks_nmi_nesting == DYNTICK_IRQ_NONIDLE &&
-                  READ_ONCE(rdp->rcu_urgent_qs) && !rdp->rcu_forced_tick) {
+                  READ_ONCE(rdp->rcu_urgent_qs) &&
+                  !READ_ONCE(rdp->rcu_forced_tick)) {
                raw_spin_lock_rcu_node(rdp->mynode);
                // Recheck under lock.
                if (rdp->rcu_urgent_qs && !rdp->rcu_forced_tick) {
-                       rdp->rcu_forced_tick = true;
+                       WRITE_ONCE(rdp->rcu_forced_tick, true);
                        tick_dep_set_cpu(rdp->cpu, TICK_DEP_BIT_RCU);
                }
                raw_spin_unlock_rcu_node(rdp->mynode);
        WRITE_ONCE(rdp->rcu_need_heavy_qs, false);
        if (tick_nohz_full_cpu(rdp->cpu) && rdp->rcu_forced_tick) {
                tick_dep_clear_cpu(rdp->cpu, TICK_DEP_BIT_RCU);
-               rdp->rcu_forced_tick = false;
+               WRITE_ONCE(rdp->rcu_forced_tick, false);
        }
 }