projects/linux·commit 4cc6bbae

Merge tag 'urgent.2026.10.01a' of git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux

4cc6bbae · Linus Torvalds <[email protected]> · 2026-10-08 06:30:50 +02:00

Pull RCU fix from Paul McKenney:
 "Fix spurious WARN_ON() for rcu_segcblist_n_cbs() in
  cleanup_srcu_struct()

  This issue was introduced by 78a38cbf6f20 ("srcu: Queue
  sdp->work when the delay timer is successfully deleted")
  during this merge window.

  Enough people are hitting this that I am sending it now
  rather than waiting for the next merge window. Especially
  given that it is a simple one-liner"

* tag 'urgent.2026.10.01a' of git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux:
  srcu: Fix WARN_ON() for rcu_segcblist_n_cbs() in cleanup_srcu_struct()
Commit
4cc6bbaeb3afe9166380eccd8d166d2dd75c0278
Parents
7b63ef2d · 26f90559

Merge commit. Changes below are compared with the first parent: 7b63ef2d.

Changes

1 files changed · +1 −1

FileStatusAddDelContent
kernel/rcu/srcutree.cmodified+1−1View file

kernel/rcu/srcutree.c

View file
diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c
index ed204b3..ad27880 100644
--- a/kernel/rcu/srcutree.c
+++ b/kernel/rcu/srcutree.c
@@ -704,7 +704,7 @@ void cleanup_srcu_struct(struct srcu_struct *ssp)
// Call srcu_barrier() before this cleanup_srcu_struct()
// to avoid triggering this WARN_ON().
if (WARN_ON(timer_delete_sync(&sdp->delay_work) &&
- rcu_segcblist_n_cbs(&sdp->srcu_cblist)) &&
+ !rcu_segcblist_empty(&sdp->srcu_cblist)) &&
rcu_cpu_beenfullyonline(sdp->cpu))
queue_work_on(sdp->cpu, rcu_gp_wq, &sdp->work);
flush_work(&sdp->work);