On Tue, Jul 11, 2023 at 11:21:48AM +0200, Andrea Righi wrote: > On Mon, Jul 10, 2023 at 03:13:30PM -1000, Tejun Heo wrote: > ... > > +static void free_dsq_irq_workfn(struct irq_work *irq_work) > > +{ > > + struct llist_node *to_free = llist_del_all(&dsqs_to_free); > > + struct scx_dispatch_q *dsq, *tmp_dsq; > > + > > + llist_for_each_entry_safe(dsq, tmp_dsq, to_free, free_node) > > + kfree_rcu(dsq); > > Maybe kfree_rcu(dsq, rcu)? > > With 7e3f926bf453 ("rcu/kvfree: Eliminate k[v]free_rcu() single argument macro") > we don't allow single argument kfree_rcu() anymore and I don't think we > want to use kfree_rcu_mightsleep() here... Oh, thanks for pointing that out. I'll update. Thanks. -- tejun