diff options
author | Ingo Molnar <mingo@kernel.org> | 2017-10-24 10:49:44 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2017-10-24 10:49:44 +0200 |
commit | 72bc286b81d21404cdfecddf76b64c7163aac764 (patch) | |
tree | 3fb993e0171e13d51e1153d111f2b9acfe5fe68e /kernel/irq_work.c | |
parent | bb176f67090ca54869fc1262c913aa69d2ede070 (diff) | |
parent | ad4e25a3a1a5a95b334242d908e26f1249db83e0 (diff) | |
download | linux-72bc286b81d21404cdfecddf76b64c7163aac764.tar.gz linux-72bc286b81d21404cdfecddf76b64c7163aac764.tar.bz2 linux-72bc286b81d21404cdfecddf76b64c7163aac764.zip |
Merge branch 'for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu
Pull RCU updates from Paul E. McKenney:
- Documentation updates
- Miscellaneous fixes
- RCU CPU stall-warning updates
- Torture-test updates
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/irq_work.c')
-rw-r--r-- | kernel/irq_work.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/kernel/irq_work.c b/kernel/irq_work.c index bcf107ce0854..9f20f6c72579 100644 --- a/kernel/irq_work.c +++ b/kernel/irq_work.c @@ -56,7 +56,6 @@ void __weak arch_irq_work_raise(void) */ } -#ifdef CONFIG_SMP /* * Enqueue the irq_work @work on @cpu unless it's already pending * somewhere. @@ -68,6 +67,8 @@ bool irq_work_queue_on(struct irq_work *work, int cpu) /* All work should have been flushed before going offline */ WARN_ON_ONCE(cpu_is_offline(cpu)); +#ifdef CONFIG_SMP + /* Arch remote IPI send/receive backend aren't NMI safe */ WARN_ON_ONCE(in_nmi()); @@ -78,10 +79,12 @@ bool irq_work_queue_on(struct irq_work *work, int cpu) if (llist_add(&work->llnode, &per_cpu(raised_list, cpu))) arch_send_call_function_single_ipi(cpu); +#else /* #ifdef CONFIG_SMP */ + irq_work_queue(work); +#endif /* #else #ifdef CONFIG_SMP */ + return true; } -EXPORT_SYMBOL_GPL(irq_work_queue_on); -#endif /* Enqueue the irq work @work on the current CPU */ bool irq_work_queue(struct irq_work *work) |