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... -Andrea