smp: blackfin: fix check error, using atomic_ops to handle atomic_t type
authorSteven Miao <realmz6@gmail.com>
Tue, 16 Jul 2013 05:25:21 +0000 (13:25 +0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 16 Jul 2013 15:42:10 +0000 (08:42 -0700)
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Steven Miao <realmz6@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/blackfin/mach-common/smp.c

index 961d8392e5e338aad75200026600624273e9f7ce..b5f9ed7d4856a8c2ba7544fe394a8a5bb80f7a0f 100644 (file)
@@ -147,7 +147,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);
-       while ((pending = xchg(&bfin_ipi_data->bits, 0)) != 0) {
+       while ((pending = atomic_xchg(&bfin_ipi_data->bits, 0)) != 0) {
                msg = 0;
                do {
                        msg = find_next_bit(&pending, BITS_PER_LONG, msg + 1);
@@ -182,8 +182,8 @@ static void bfin_ipi_init(void)
        struct ipi_data *bfin_ipi_data;
        for_each_possible_cpu(cpu) {
                bfin_ipi_data = &per_cpu(bfin_ipi, cpu);
-               bfin_ipi_data->bits = 0;
-               bfin_ipi_data->count = 0;
+               atomic_set(&bfin_ipi_data->bits, 0);
+               atomic_set(&bfin_ipi_data->count, 0);
        }
 }