瀏覽代碼

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>
Steven Miao 12 年之前
父節點
當前提交
6594b982f6
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      arch/blackfin/mach-common/smp.c

+ 2 - 2
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);
 	platform_clear_ipi(cpu, IRQ_SUPPLE_1);
 
 
 	bfin_ipi_data = &__get_cpu_var(bfin_ipi);
 	bfin_ipi_data = &__get_cpu_var(bfin_ipi);
-
+	smp_mb();
 	while ((pending = xchg(&bfin_ipi_data->bits, 0)) != 0) {
 	while ((pending = xchg(&bfin_ipi_data->bits, 0)) != 0) {
 		msg = 0;
 		msg = 0;
 		do {
 		do {
@@ -195,7 +195,7 @@ void send_ipi(const struct cpumask *cpumask, enum ipi_message_type msg)
 	unsigned long flags;
 	unsigned long flags;
 
 
 	local_irq_save(flags);
 	local_irq_save(flags);
-
+	smp_mb();
 	for_each_cpu(cpu, cpumask) {
 	for_each_cpu(cpu, cpumask) {
 		bfin_ipi_data = &per_cpu(bfin_ipi, cpu);
 		bfin_ipi_data = &per_cpu(bfin_ipi, cpu);
 		smp_mb();
 		smp_mb();