Frederic Weisbecker's on April 6, 2019 10:06 am: > On Mon, Apr 01, 2019 at 10:38:27AM +0200, Peter Zijlstra wrote: >> >> + fweisbec, who did the remote bits >> >> On Sat, Mar 30, 2019 at 01:10:28PM +1000, Nicholas Piggin wrote: >> > diff --git a/kernel/irq_work.c b/kernel/irq_work.c >> > index 6b7cdf17ccf8..f0e539d0f879 100644 >> > --- a/kernel/irq_work.c >> > +++ b/kernel/irq_work.c >> > -/* Enqueue the irq work @work on the current CPU */ >> > -bool irq_work_queue(struct irq_work *work) >> > +/* >> > + * Enqueue the irq_work @work on @cpu unless it's already pending >> > + * somewhere. >> > + * >> > + * Can be re-enqueued while the callback is still in progress. >> > + */ >> > +bool irq_work_queue_on(struct irq_work *work, int cpu) >> > { >> > +#ifndef CONFIG_SMP >> > + return irq_work_queue(work); >> > + > > I'd suggest to use "if (!IS_ENABLED(CONFIG_SMP))" here to avoid the large > ifdeffery.
Sadly you can't do it because arch_send_call_function_single_ipi is not defined for !SMP. I made your suggested name change though (with the __ prefix because work needs to be claimed and preempt disabled). Thanks, Nick