Home

Description

In the Linux kernel, the following vulnerability has been resolved: srcu: Use irq_work to start GP in tiny SRCU Tiny SRCU's srcu_gp_start_if_needed() directly calls schedule_work(), which acquires the workqueue pool->lock. This causes a lockdep splat when call_srcu() is called with a scheduler lock held, due to: call_srcu() [holding pi_lock] srcu_gp_start_if_needed() schedule_work() -> pool->lock workqueue_init() / create_worker() [holding pool->lock] wake_up_process() -> try_to_wake_up() -> pi_lock Also add irq_work_sync() to cleanup_srcu_struct() to prevent a use-after-free if a queued irq_work fires after cleanup begins. Tested with rcutorture SRCU-T and no lockdep warnings. [ Thanks to Boqun for similar fix in patch "rcu: Use an intermediate irq_work to start process_srcu()" ]

PUBLISHED Reserved 2026-05-01 | Published 2026-05-06 | Updated 2026-05-07 | Assigner Linux

Product status

Default status
unaffected

d8be81735aa89413b333de488251f0e64e2be591 (git) before bb37286db65368cb72ba8757ad86299c4e4a73fc
affected

d8be81735aa89413b333de488251f0e64e2be591 (git) before a6fc88b22bc8d12ad52e8412c667ec0f5bf055af
affected

Default status
affected

4.12
affected

Any version before 4.12
unaffected

6.19.14 (semver)
unaffected

7.0 (original_commit_for_fix)
unaffected

References

git.kernel.org/...c/bb37286db65368cb72ba8757ad86299c4e4a73fc

git.kernel.org/...c/a6fc88b22bc8d12ad52e8412c667ec0f5bf055af

cve.org (CVE-2026-43115)

nvd.nist.gov (CVE-2026-43115)

Download JSON