From: Steven Miao Date: Tue, 4 Sep 2012 08:57:14 +0000 (+0800) Subject: Blackfin: smp: add smp_mb() to keep coherency X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=6594b982f6d5f957c8d72de7658bf8e240c7dfca;p=openwrt%2Fstaging%2Fblogic.git 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 Signed-off-by: Bob Liu --- 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) 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();