tile: fix bug in get_user() for 4-byte values

The definition of 32-bit values in the 64-bit tilegx architecture is that
they should be sign-extended regardless of whether they are considered
signed or unsigned by the compiler. Accordingly, we need to use an
"ld4s" rather than "ld4u" to load and sign-extend for get_user().

This fixes glibc bug 14238 (see http://sourceware.org/bugzilla),
introduced during the 3.5 merge window.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>

Changed files
+1 -1
arch
tile
include
asm
+1 -1
arch/tile/include/asm/uaccess.h
··· 146 146 #ifdef __tilegx__ 147 147 #define __get_user_1(x, ptr, ret) __get_user_asm(ld1u, x, ptr, ret) 148 148 #define __get_user_2(x, ptr, ret) __get_user_asm(ld2u, x, ptr, ret) 149 - #define __get_user_4(x, ptr, ret) __get_user_asm(ld4u, x, ptr, ret) 149 + #define __get_user_4(x, ptr, ret) __get_user_asm(ld4s, x, ptr, ret) 150 150 #define __get_user_8(x, ptr, ret) __get_user_asm(ld, x, ptr, ret) 151 151 #else 152 152 #define __get_user_1(x, ptr, ret) __get_user_asm(lb_u, x, ptr, ret)