diff options
author | Tony Lindgren <tony@atomide.com> | 2013-06-07 15:05:36 -0700 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2013-06-07 15:05:36 -0700 |
commit | 17f545ca1769e268e0190d88ab94dc2a117df280 (patch) | |
tree | 34b06d75d4c95823f7dbb0017142e5b59cd88f1b /arch/x86/xen/smp.c | |
parent | 2d403f7b198163d14a37ab79de33e27e390bb3b1 (diff) | |
parent | 8341613afbc8d65bca8c81158edfb49f36b7ad92 (diff) |
Merge branch 'dts-fixes-for-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/bcousson/linux-omap-dt into omap-for-v3.10/fixes
Diffstat (limited to 'arch/x86/xen/smp.c')
-rw-r--r-- | arch/x86/xen/smp.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c index 8ff37995d54e..fb44426fe931 100644 --- a/arch/x86/xen/smp.c +++ b/arch/x86/xen/smp.c @@ -576,24 +576,22 @@ void xen_send_IPI_mask_allbutself(const struct cpumask *mask, { unsigned cpu; unsigned int this_cpu = smp_processor_id(); + int xen_vector = xen_map_vector(vector); - if (!(num_online_cpus() > 1)) + if (!(num_online_cpus() > 1) || (xen_vector < 0)) return; for_each_cpu_and(cpu, mask, cpu_online_mask) { if (this_cpu == cpu) continue; - xen_smp_send_call_function_single_ipi(cpu); + xen_send_IPI_one(cpu, xen_vector); } } void xen_send_IPI_allbutself(int vector) { - int xen_vector = xen_map_vector(vector); - - if (xen_vector >= 0) - xen_send_IPI_mask_allbutself(cpu_online_mask, xen_vector); + xen_send_IPI_mask_allbutself(cpu_online_mask, vector); } static irqreturn_t xen_call_function_interrupt(int irq, void *dev_id) |