parisc: Use double word condition in 64bit CAS operation
authorJohn David Anglin <dave.anglin@bell.net>
Tue, 8 Sep 2015 00:13:28 +0000 (20:13 -0400)
committerHelge Deller <deller@gmx.de>
Tue, 8 Sep 2015 14:15:54 +0000 (16:15 +0200)
The attached change fixes the condition used in the "sub" instruction.
A double word comparison is needed.  This fixes the 64-bit LWS CAS
operation on 64-bit kernels.

I can now enable 64-bit atomic support in GCC.

Cc: <stable@vger.kernel.org>
Signed-off-by: John David Anglin <dave.anglin>
Signed-off-by: Helge Deller <deller@gmx.de>
arch/parisc/kernel/syscall.S

index 7ef22e3387e09f8b63b2a6532b0c995bb12b6e96..0b8d26d3ba43be545308dc70075a4a224a8b8155 100644 (file)
@@ -821,7 +821,7 @@ cas2_action:
        /* 64bit CAS */
 #ifdef CONFIG_64BIT
 19:    ldd,ma  0(%sr3,%r26), %r29
-       sub,  %r29, %r25, %r0
+       sub,*=  %r29, %r25, %r0
        b,n     cas2_end
 20:    std,ma  %r24, 0(%sr3,%r26)
        copy    %r0, %r28