Re: [PATCH] srcu: Queue sdp->work when the delay timer is successfully deleted
"Zqiang" <[email protected]> Tue, 04 Aug 2026 21:58:52 +0000
| Newsgroups | org.kernel.vger.rcu,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
>=20 >=20On Mon, Aug 03, 2026 at 11:40:14PM +0000, Zqiang wrote: >=20 >=20>=20 >=20> diff --git a/kernel/rcu/srcutree.c b/kernel/rcu/srcutree.c > > index b9fe57ff9100..d13c12f61150 100644 > > --- a/kernel/rcu/srcutree.c > > +++ b/kernel/rcu/srcutree.c > > @@ -751,8 +751,9 @@ void cleanup_srcu_struct(struct srcu_struct *ssp= ) > >=20=20 >=20> // Call srcu_barrier() before this cleanup_srcu_struct() > > // to avoid triggering this WARN_ON(). > > - if (WARN_ON(timer_delete_sync(&sdp->delay_work)) && > > - rcu_cpu_beenfullyonline(sdp->cpu)) > > + if (WARN_ON(timer_delete_sync(&sdp->delay_work) && > > + rcu_segcblist_n_cbs(&sdp->srcu_cblist)) && > > + rcu_cpu_beenfullyonline(sdp->cpu)) > >=20 >=20Isn't the WARN_ON() the same? thus it will hit again? WARN_ON(timer_delete_sync(&sdp->delay_work) && rcu_segcblist_n_cbs(&sdp->= srcu_cblist)) Thanks Zqiang >