diff options
author | Xin Xie <xxie@nvidia.com> | 2011-03-09 16:42:11 -0800 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2011-03-22 16:39:32 -0800 |
commit | 184b3ea36d5878b69c79bc190f4c395a40bc81e6 (patch) | |
tree | fc87aa6046b1c9446046fa09c45794b78780898d /arch/arm/include | |
parent | 3218d13d46522296c952ce1fe23b95f99dbcaa50 (diff) |
ARM: SMP: remove per_cpu based spinlock in do_IPI()
The spinlock used in the do_IPI function is declared in per_cpu section,
and it does not have the cache snooping which can cause the spinlock
failure.
This fix is based on the main kernel tree:
- ARM: SMP: avoid using bitmasks and locks for IPIs, use hardware
instead
commit 24480d980e9063b3ebd0dfdf2f396c305956c356
- ARM: SMP: remove IRQ-disabling for smp_cross_call()
commit 0df7095205cbf6ea1cdfe6254e0d6a3b823caa3b
BUG 798775
Change-Id: I6e03027cb3f586803a260e216c71fc2fd74d09f2
Reviewed-on: http://git-master/r/23779
Reviewed-by: Xin Xie <xxie@nvidia.com>
Tested-by: Xin Xie <xxie@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'arch/arm/include')
-rw-r--r-- | arch/arm/include/asm/smp.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm/include/asm/smp.h b/arch/arm/include/asm/smp.h index 3d05190797cb..da7e7ca53cc1 100644 --- a/arch/arm/include/asm/smp.h +++ b/arch/arm/include/asm/smp.h @@ -38,7 +38,7 @@ extern void show_ipi_list(struct seq_file *p); /* * Called from assembly code, this handles an IPI. */ -asmlinkage void do_IPI(struct pt_regs *regs); +asmlinkage void do_IPI(int ipinr, struct pt_regs *regs); /* * Setup the set of possible CPUs (via set_cpu_possible) @@ -53,7 +53,7 @@ extern void smp_store_cpu_info(unsigned int cpuid); /* * Raise an IPI cross call on CPUs in callmap. */ -extern void smp_cross_call(const struct cpumask *mask); +extern void smp_cross_call(const struct cpumask *mask, int ipi); /* * Boot a secondary CPU, and assign it the specified idle task. |