Merge tag 'rcu-fixes.v7.0-20260325a' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 26 Mar 2026 01:14:19 +0000 (18:14 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 26 Mar 2026 01:14:19 +0000 (18:14 -0700)
commitaba9da0905f14106b368e0abf75220e744d27626
treed1579c800ad6ad4c230dbb2d292a37208dcc4918
parentd2a43e7f89da55d6f0f96aaadaa243f35557291e
parenta6fc88b22bc8d12ad52e8412c667ec0f5bf055af
Merge tag 'rcu-fixes.v7.0-20260325a' of git://git./linux/kernel/git/rcu/linux

Pull RCU fixes from Boqun Feng:
 "Fix a regression introduced by commit c27cea4416a3 ("rcu: Re-implement
  RCU Tasks Trace in terms of SRCU-fast"): BPF contexts can run with
  preemption disabled or scheduler locks held, so call_srcu() must work
  in all such contexts.

  Fix this by converting SRCU's spinlocks to raw spinlocks and avoiding
  scheduler lock acquisition in call_srcu() by deferring to an irq_work
  (similar to call_rcu_tasks_generic()), for both tree SRCU and tiny
  SRCU.

  Also fix a follow-on lockdep splat caused by srcu_node allocation
  under the newly introduced raw spinlock by deferring the allocation to
  grace-period worker context"

* tag 'rcu-fixes.v7.0-20260325a' of git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux:
  srcu: Use irq_work to start GP in tiny SRCU
  rcu: Use an intermediate irq_work to start process_srcu()
  srcu: Push srcu_node allocation to GP when non-preemptible
  srcu: Use raw spinlocks so call_srcu() can be used under preempt_disable()