Skip to content

Commit 343640c

Browse files
committed
rcu: Mark __rcu_irq_enter_check_tick() ->rcu_urgent_qs load
The rcu_request_urgent_qs_task() function does a cross-CPU store to ->rcu_urgent_qs, so this commit therefore marks the load in __rcu_irq_enter_check_tick() with READ_ONCE(). Signed-off-by: Paul E. McKenney <[email protected]> Reviewed-by: Joel Fernandes (Google) <[email protected]>
1 parent ed2b9e1 commit 343640c

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

kernel/rcu/tree.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -632,7 +632,7 @@ void __rcu_irq_enter_check_tick(void)
632632
// prevents self-deadlock. So we can safely recheck under the lock.
633633
// Note that the nohz_full state currently cannot change.
634634
raw_spin_lock_rcu_node(rdp->mynode);
635-
if (rdp->rcu_urgent_qs && !rdp->rcu_forced_tick) {
635+
if (READ_ONCE(rdp->rcu_urgent_qs) && !rdp->rcu_forced_tick) {
636636
// A nohz_full CPU is in the kernel and RCU needs a
637637
// quiescent state. Turn on the tick!
638638
WRITE_ONCE(rdp->rcu_forced_tick, true);

0 commit comments

Comments
 (0)