Merge tag 'rcu.fixes.6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 13 Aug 2025 17:23:28 +0000 (10:23 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 13 Aug 2025 17:23:28 +0000 (10:23 -0700)
commit3a4a0367c9f45b025ec57e1ba492512d5479d361
tree818ede783ec4cd5439796dd0a23146fa9a8a8769
parent91325f31afc1026de28665cf1a7b6e157fa4d39d
parent61399e0c5410567ef60cb1cda34cca42903842e3
Merge tag 'rcu.fixes.6.17' of git://git./linux/kernel/git/rcu/linux

Pull RCU fix from Neeraj Upadhyay:
 "Fix a regression introduced by commit b41642c87716 ("rcu: Fix
  rcu_read_unlock() deadloop due to IRQ work") which results in boot
  hang as reported by kernel test bot at [1].

  This issue happens because RCU re-initializes the deferred QS IRQ work
  everytime it is queued. With commit b41642c87716, the IRQ work
  re-initialization can happen while it is already queued. This results
  in IRQ work being requeued to itself. When IRQ work finally fires, as
  it is requeued to itself, it is repeatedly executed and results in
  hang.

  Fix this with initializing the IRQ work only once before the CPU
  boots"

Link: https://lore.kernel.org/rcu/202508071303.c1134cce-lkp@intel.com/
* tag 'rcu.fixes.6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux:
  rcu: Fix racy re-initialization of irq_work causing hangs