sparc: Fixed random SPARC/LEON SMP CPU Stuck problem.
authorDaniel Hellstrom <daniel@gaisler.com>
Mon, 25 Oct 2010 21:23:46 +0000 (21:23 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 26 Oct 2010 16:02:44 +0000 (09:02 -0700)
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/kernel/leon_smp.c

index e1656fc..7524689 100644 (file)
@@ -56,8 +56,8 @@ void __init leon_configure_cache_smp(void);
 static inline unsigned long do_swap(volatile unsigned long *ptr,
                                    unsigned long val)
 {
-       __asm__ __volatile__("swapa [%1] %2, %0\n\t" : "=&r"(val)
-                            : "r"(ptr), "i"(ASI_LEON_DCACHE_MISS)
+       __asm__ __volatile__("swapa [%2] %3, %0\n\t" : "=&r"(val)
+                            : "0"(val), "r"(ptr), "i"(ASI_LEON_DCACHE_MISS)
                             : "memory");
        return val;
 }