summaryrefslogtreecommitdiffstats
path: root/arch/x86/xen/smp.h
diff options
context:
space:
mode:
authorBoris Ostrovsky <boris.ostrovsky@oracle.com>2016-08-03 13:22:27 -0400
committerDavid Vrabel <david.vrabel@citrix.com>2016-08-24 18:44:40 +0100
commit5fc509bc2bd6dddd4107eaf90680cd76cfc2ffed (patch)
tree30265b703433375b2e86f1b96997b4b4971f7be6 /arch/x86/xen/smp.h
parentfa8410b355251fd30341662a40ac6b22d3e38468 (diff)
downloadlinux-5fc509bc2bd6dddd4107eaf90680cd76cfc2ffed.tar.gz
linux-5fc509bc2bd6dddd4107eaf90680cd76cfc2ffed.tar.bz2
linux-5fc509bc2bd6dddd4107eaf90680cd76cfc2ffed.zip
xen/x86: Move irq allocation from Xen smp_op.cpu_up()
Commit ce0d3c0a6fb1 ("genirq: Revert sparse irq locking around __cpu_up() and move it to x86 for now") reverted irq locking introduced by commit a89941816726 ("hotplug: Prevent alloc/free of irq descriptors during cpu up/down") because of Xen allocating irqs in both of its cpu_up ops. We can move those allocations into CPU notifiers so that original patch can be reinstated. Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Diffstat (limited to 'arch/x86/xen/smp.h')
-rw-r--r--arch/x86/xen/smp.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/x86/xen/smp.h b/arch/x86/xen/smp.h
index 963d62a35c82..c5c16dc4f694 100644
--- a/arch/x86/xen/smp.h
+++ b/arch/x86/xen/smp.h
@@ -1,5 +1,6 @@
#ifndef _XEN_SMP_H
+#ifdef CONFIG_SMP
extern void xen_send_IPI_mask(const struct cpumask *mask,
int vector);
extern void xen_send_IPI_mask_allbutself(const struct cpumask *mask,
@@ -8,6 +9,18 @@ extern void xen_send_IPI_allbutself(int vector);
extern void xen_send_IPI_all(int vector);
extern void xen_send_IPI_self(int vector);
+extern int xen_smp_intr_init(unsigned int cpu);
+extern void xen_smp_intr_free(unsigned int cpu);
+
+#else /* CONFIG_SMP */
+
+static inline int xen_smp_intr_init(unsigned int cpu)
+{
+ return 0;
+}
+static inline void xen_smp_intr_free(unsigned int cpu) {}
+#endif /* CONFIG_SMP */
+
#ifdef CONFIG_XEN_PVH
extern void xen_pvh_early_cpu_init(int cpu, bool entry);
#else