diff options
author | Boris Ostrovsky <boris.ostrovsky@oracle.com> | 2016-08-03 13:22:27 -0400 |
---|---|---|
committer | David Vrabel <david.vrabel@citrix.com> | 2016-08-24 18:44:40 +0100 |
commit | 5fc509bc2bd6dddd4107eaf90680cd76cfc2ffed (patch) | |
tree | 30265b703433375b2e86f1b96997b4b4971f7be6 /arch/x86/xen/smp.h | |
parent | fa8410b355251fd30341662a40ac6b22d3e38468 (diff) | |
download | linux-5fc509bc2bd6dddd4107eaf90680cd76cfc2ffed.tar.bz2 |
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.h | 13 |
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 |