Enable pre-update addressing mode in __get_user_asm() and __put_user_asm()

Signed-off-by: Christophe Leroy <christophe.le...@csgroup.eu>
---
v3: new, splited out from patch 1.
---
 arch/powerpc/include/asm/uaccess.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/powerpc/include/asm/uaccess.h 
b/arch/powerpc/include/asm/uaccess.h
index c546fb36043d..eadb25f4cc9f 100644
--- a/arch/powerpc/include/asm/uaccess.h
+++ b/arch/powerpc/include/asm/uaccess.h
@@ -159,7 +159,7 @@ extern long __put_user_bad(void);
  */
 #define __put_user_asm(x, addr, err, op)                       \
        __asm__ __volatile__(                                   \
-               "1:     " op "%X2 %1,%2 # put_user\n"           \
+               "1:     " op "%U2%X2 %1,%2      # put_user\n"   \
                "2:\n"                                          \
                ".section .fixup,\"ax\"\n"                      \
                "3:     li %0,%3\n"                             \
@@ -167,7 +167,7 @@ extern long __put_user_bad(void);
                ".previous\n"                                   \
                EX_TABLE(1b, 3b)                                \
                : "=r" (err)                                    \
-               : "r" (x), "m" (*addr), "i" (-EFAULT), "0" (err))
+               : "r" (x), "m<>" (*addr), "i" (-EFAULT), "0" (err))
 
 #ifdef __powerpc64__
 #define __put_user_asm2(x, ptr, retval)                                \
@@ -317,7 +317,7 @@ extern long __get_user_bad(void);
 
 #define __get_user_asm(x, addr, err, op)               \
        __asm__ __volatile__(                           \
-               "1:     "op"%X2 %1, %2  # get_user\n"   \
+               "1:     "op"%U2%X2 %1, %2       # get_user\n"   \
                "2:\n"                                  \
                ".section .fixup,\"ax\"\n"              \
                "3:     li %0,%3\n"                     \
@@ -326,7 +326,7 @@ extern long __get_user_bad(void);
                ".previous\n"                           \
                EX_TABLE(1b, 3b)                        \
                : "=r" (err), "=r" (x)                  \
-               : "m" (*addr), "i" (-EFAULT), "0" (err))
+               : "m<>" (*addr), "i" (-EFAULT), "0" (err))
 
 #ifdef __powerpc64__
 #define __get_user_asm2(x, addr, err)                  \
-- 
2.25.0

Reply via email to