powerpc/uaccess: Don't use "m<>" constraint
authorMichael Ellerman <mpe@ellerman.id.au>
Thu, 7 May 2020 12:33:24 +0000 (22:33 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 8 May 2020 03:30:42 +0000 (13:30 +1000)
The "m<>" constraint breaks compilation with GCC 4.6.x era compilers.

The use of the constraint allows the compiler to use update-form
instructions, however in practice current compilers never generate
those forms for any of the current uses of __put_user_asm_goto().

We anticipate that GCC 4.6 will be declared unsupported for building
the kernel in the not too distant future. So for now just switch to
the "m" constraint.

Fixes: 334710b1496a ("powerpc/uaccess: Implement unsafe_put_user() using 'asm goto'")
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Acked-by: Segher Boessenkool <segher@kernel.crashing.org>
Link: https://lore.kernel.org/r/20200507123324.2250024-1-mpe@ellerman.id.au
arch/powerpc/include/asm/uaccess.h

index 62cc8d7..1641120 100644 (file)
@@ -210,7 +210,7 @@ do {                                                                \
                "1:     " op "%U1%X1 %0,%1      # put_user\n"   \
                EX_TABLE(1b, %l2)                               \
                :                                               \
-               : "r" (x), "m<>" (*addr)                                \
+               : "r" (x), "m" (*addr)                          \
                :                                               \
                : label)