aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin
diff options
context:
space:
mode:
authorSteven Miao <realmz6@gmail.com>2012-09-04 04:57:14 -0400
committerBob Liu <lliubbo@gmail.com>2012-10-08 02:36:30 -0400
commit6594b982f6d5f957c8d72de7658bf8e240c7dfca (patch)
tree9d7c0acc8206760ca6ca1ab7a8b8861d8785efc4 /arch/blackfin
parent4087af4c7f978fe574378e5d1e69db88281e60ce (diff)
Blackfin: smp: add smp_mb() to keep coherency
After use generic smp helpers, smp_mb() should be added to keep coherency. Signed-off-by: Steven Miao <realmz6@gmail.com> Signed-off-by: Bob Liu <lliubbo@gmail.com>
Diffstat (limited to 'arch/blackfin')
-rw-r--r--arch/blackfin/mach-common/smp.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/blackfin/mach-common/smp.c b/arch/blackfin/mach-common/smp.c
index a40151306b77..bb61ae4986e4 100644
--- a/arch/blackfin/mach-common/smp.c
+++ b/arch/blackfin/mach-common/smp.c
@@ -146,7 +146,7 @@ static irqreturn_t ipi_handler_int1(int irq, void *dev_instance)
146 platform_clear_ipi(cpu, IRQ_SUPPLE_1); 146 platform_clear_ipi(cpu, IRQ_SUPPLE_1);
147 147
148 bfin_ipi_data = &__get_cpu_var(bfin_ipi); 148 bfin_ipi_data = &__get_cpu_var(bfin_ipi);
149 149 smp_mb();
150 while ((pending = xchg(&bfin_ipi_data->bits, 0)) != 0) { 150 while ((pending = xchg(&bfin_ipi_data->bits, 0)) != 0) {
151 msg = 0; 151 msg = 0;
152 do { 152 do {
@@ -195,7 +195,7 @@ void send_ipi(const struct cpumask *cpumask, enum ipi_message_type msg)
195 unsigned long flags; 195 unsigned long flags;
196 196
197 local_irq_save(flags); 197 local_irq_save(flags);
198 198 smp_mb();
199 for_each_cpu(cpu, cpumask) { 199 for_each_cpu(cpu, cpumask) {
200 bfin_ipi_data = &per_cpu(bfin_ipi, cpu); 200 bfin_ipi_data = &per_cpu(bfin_ipi, cpu);
201 smp_mb(); 201 smp_mb();