mirror of
https://github.com/torvalds/linux.git
synced 2026-10-23 15:32:04 +02:00
srcu: Fix spurious WARN_ON() for rcu_segcblist_n_cbs() in cleanup_srcu_struct()
This issue was introduced during the recent merge window:78a38cbf6f("srcu: Queue sdp->work when the delay timer is successfully deleted") 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. -----BEGIN PGP SIGNATURE----- iQJHBAABCgAxFiEEbK7UrM+RBIrCoViJnr8S83LZ+4wFAmrAGcUTHHBhdWxtY2tA a2VybmVsLm9yZwAKCRCevxLzctn7jEqAD/4pwYiV6hn+i79v16TURcSpUwqAKwT1 lTX9OsnUvN2HkXBvrGXPlom9ZiyucpfzgZ95FasEezyLKvcuW/vOs7M4dZ7K8jmK 89grMnktxzDIrzqBXIvLINQdTzDQAn5cH88QXcqmQDKLaEaKo20fWyXq5AKhva3a lvSXAA195s1AZkRRabY/TybsE57IMWrJ4PiG7h9xxuQi6rjtpEF3B0XQKn62hywx BnYy5WHEnhufAQ4ubKdxQws7nQM+UGmShtcweQq/zeRiaVd1X3nnaR1L+28kVI3y y1pQkjjo7vPMmge31qIXerwK3hx0x0XfN+CW9roOtAIKGDlItaLFn8j1KO7m7xx7 Lz+H28j8RNET+E/3ADuhZv/z8hL9iat5cGFzZqixDAmvbd44p8LVwMhXpJaiIXvH 0ca9OaN3U7AiKPotAdGJP8i2GdbkDeObKZ23WG39zguXPzrrbB2lTphY9VZNpXTp FEqwojNRzeO3beC650Vjc2VPpGiSCUznOoOl6z+mfyywXxgRNOJ4m8+WBVps+Rfc YWX7NeK6VWo67U5c5YS4WgUS+J2RWu0ca8E37yyhylEzgT1rHxz5AlB3dnw2PcOw NitOFoyVTpvvxY6pfOiktd5nvX2Saz+6DMvkYcn4gwL8DhHwBEvCiH8YtQBK6cgJ XV0vcx8+eQieOA== =a4pP -----END PGP SIGNATURE----- Merge tag 'urgent.2026.10.01a' of git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux Pull RCU fix from Paul McKenney: "Fix spurious WARN_ON() for rcu_segcblist_n_cbs() in cleanup_srcu_struct() This issue was introduced by78a38cbf6f("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()
This commit is contained in:
commit
4cc6bbaeb3
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user