Message ID | 20221013172244.1099010-3-frederic@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | srcu: A few NMI-safe debugging updates | expand |
diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c index 8b7ef1031d89..5bf67d997796 100644 --- a/kernel/rcu/srcutree.c +++ b/kernel/rcu/srcutree.c @@ -1154,6 +1154,11 @@ static unsigned long srcu_gp_start_if_needed(struct srcu_struct *ssp, int ss_state; check_init_srcu_struct(ssp); + /* + * While starting the new gp if needed, make sure we are in an SRCU read + * side critical section so that the gp sequence can't wrap around in + * the middle. + */ idx = __srcu_read_lock_nmisafe(ssp, false); ss_state = smp_load_acquire(&ssp->srcu_size_state); if (ss_state < SRCU_SIZE_WAIT_CALL)
Tell about the need to protect against concurrent updaters who may overflow the GP counter behind the current update. Reported-by: Paul E. McKenney <paulmck@kernel.org> Signed-off-by: Frederic Weisbecker <frederic@kernel.org> --- kernel/rcu/srcutree.c | 5 +++++ 1 file changed, 5 insertions(+)