On Thu, 2012-11-15 at 13:13 -0500, Steven Rostedt wrote: > > + > > +/* > > + * Run the irq_work entries on this cpu. Requires to be ran from hardirq > > + * context with local IRQs disabled. > > + */ > > +void irq_work_run(void) > > +{ > > + BUG_ON(!in_irq()); > > + __irq_work_run(); > > +} > > EXPORT_SYMBOL_GPL(irq_work_run); > > #ifdef CONFIG_HOTPLUG_CPU > > > > +static void irq_work_run_cpu_down(void) > > +{ > > + __irq_work_run(); > > +} > #endif > > Or just move the function into the #ifdef that is below.
Or even, just call __irq_work_run() directly. > > -- Steve > > > + > > /* > > * Synchronize against the irq_work @entry, ensures the entry is not > > * currently in use. > > @@ -169,3 +180,35 @@ void irq_work_sync(struct irq_work *work > > cpu_relax(); > > } > > EXPORT_SYMBOL_GPL(irq_work_sync); > > + > > +#ifdef CONFIG_HOTPLUG_CPU > > +static int irq_work_cpu_notify(struct notifier_block *self, > > + unsigned long action, void *hcpu) > > +{ > > + long cpu = (long)hcpu; > > + > > + switch (action) { > > + case CPU_DYING: > > + /* Called from stop_machine */ > > + if (WARN_ON_ONCE(cpu != smp_processor_id())) > > + break; > > + irq_work_run_cpu_down(); __irq_work_run(); -- Steve > > + break; > > + default: > > + break; > > + } > > + return NOTIFY_OK; > > +} > > + > > +static struct notifier_block cpu_notify; > > + > > +static __init int irq_work_init_cpu_notifier(void) > > +{ > > + cpu_notify.notifier_call = irq_work_cpu_notify; > > + cpu_notify.priority = 0; > > + register_cpu_notifier(&cpu_notify); > > + return 0; > > +} > > +device_initcall(irq_work_init_cpu_notifier); > > + > > +#endif /* CONFIG_HOTPLUG_CPU */ > > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/