parisc: Remove ordered stores from syscall.S
authorJohn David Anglin <dave.anglin@bell.net>
Sun, 12 Aug 2018 20:38:03 +0000 (16:38 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 24 Aug 2018 11:09:21 +0000 (13:09 +0200)
commit 7797167ffde1f00446301cb22b37b7c03194cfaf upstream.

Now that we use a sync prior to releasing the locks in syscall.S, we don't need
the PA 2.0 ordered stores used to release some locks.  Using an ordered store,
potentially slows the release and subsequent code.

There are a number of other ordered stores and loads that serve no purpose.  I
have converted these to normal stores.

Signed-off-by: John David Anglin <dave.anglin@bell.net>
Cc: stable@vger.kernel.org # 4.0+
Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/parisc/kernel/syscall.S

index 4886a6db42e98f2b1fc4c58916ee68dfc98df008..5f7e57fcaeef0333da7482f8af566a0e4da7fc00 100644 (file)
@@ -629,12 +629,12 @@ cas_action:
        stw     %r1, 4(%sr2,%r20)
 #endif
        /* The load and store could fail */
-1:     ldw,ma  0(%r26), %r28
+1:     ldw     0(%r26), %r28
        sub,<>  %r28, %r25, %r0
-2:     stw,ma  %r24, 0(%r26)
+2:     stw     %r24, 0(%r26)
        /* Free lock */
        sync
-       stw,ma  %r20, 0(%sr2,%r20)
+       stw     %r20, 0(%sr2,%r20)
 #if ENABLE_LWS_DEBUG
        /* Clear thread register indicator */
        stw     %r0, 4(%sr2,%r20)
@@ -798,30 +798,30 @@ cas2_action:
        ldo     1(%r0),%r28
 
        /* 8bit CAS */
-13:    ldb,ma  0(%r26), %r29
+13:    ldb     0(%r26), %r29
        sub,=   %r29, %r25, %r0
        b,n     cas2_end
-14:    stb,ma  %r24, 0(%r26)
+14:    stb     %r24, 0(%r26)
        b       cas2_end
        copy    %r0, %r28
        nop
        nop
 
        /* 16bit CAS */
-15:    ldh,ma  0(%r26), %r29
+15:    ldh     0(%r26), %r29
        sub,=   %r29, %r25, %r0
        b,n     cas2_end
-16:    sth,ma  %r24, 0(%r26)
+16:    sth     %r24, 0(%r26)
        b       cas2_end
        copy    %r0, %r28
        nop
        nop
 
        /* 32bit CAS */
-17:    ldw,ma  0(%r26), %r29
+17:    ldw     0(%r26), %r29
        sub,=   %r29, %r25, %r0
        b,n     cas2_end
-18:    stw,ma  %r24, 0(%r26)
+18:    stw     %r24, 0(%r26)
        b       cas2_end
        copy    %r0, %r28
        nop
@@ -829,10 +829,10 @@ cas2_action:
 
        /* 64bit CAS */
 #ifdef CONFIG_64BIT
-19:    ldd,ma  0(%r26), %r29
+19:    ldd     0(%r26), %r29
        sub,*=  %r29, %r25, %r0
        b,n     cas2_end
-20:    std,ma  %r24, 0(%r26)
+20:    std     %r24, 0(%r26)
        copy    %r0, %r28
 #else
        /* Compare first word */
@@ -851,7 +851,7 @@ cas2_action:
 cas2_end:
        /* Free lock */
        sync
-       stw,ma  %r20, 0(%sr2,%r20)
+       stw     %r20, 0(%sr2,%r20)
        /* Enable interrupts */
        ssm     PSW_SM_I, %r0
        /* Return to userspace, set no error */