Blackfin: smp: add smp_mb() to keep coherency
authorSteven Miao <realmz6@gmail.com>
Tue, 4 Sep 2012 08:57:14 +0000 (16:57 +0800)
committerBob Liu <lliubbo@gmail.com>
Mon, 8 Oct 2012 06:36:30 +0000 (14:36 +0800)
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>
arch/blackfin/mach-common/smp.c

index a401513..bb61ae4 100644 (file)
@@ -146,7 +146,7 @@ static irqreturn_t ipi_handler_int1(int irq, void *dev_instance)
        platform_clear_ipi(cpu, IRQ_SUPPLE_1);
 
        bfin_ipi_data = &__get_cpu_var(bfin_ipi);
-
+       smp_mb();
        while ((pending = xchg(&bfin_ipi_data->bits, 0)) != 0) {
                msg = 0;
                do {
@@ -195,7 +195,7 @@ void send_ipi(const struct cpumask *cpumask, enum ipi_message_type msg)
        unsigned long flags;
 
        local_irq_save(flags);
-
+       smp_mb();
        for_each_cpu(cpu, cpumask) {
                bfin_ipi_data = &per_cpu(bfin_ipi, cpu);
                smp_mb();