|
@@ -179,10 +179,11 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
|
|
|
({ \
|
|
|
int __ret_gu; \
|
|
|
register __inttype(*(ptr)) __val_gu asm("%"_ASM_DX); \
|
|
|
+ register void *__sp asm(_ASM_SP); \
|
|
|
__chk_user_ptr(ptr); \
|
|
|
might_fault(); \
|
|
|
- asm volatile("call __get_user_%P3" \
|
|
|
- : "=a" (__ret_gu), "=r" (__val_gu) \
|
|
|
+ asm volatile("call __get_user_%P4" \
|
|
|
+ : "=a" (__ret_gu), "=r" (__val_gu), "+r" (__sp) \
|
|
|
: "0" (ptr), "i" (sizeof(*(ptr)))); \
|
|
|
(x) = (__force __typeof__(*(ptr))) __val_gu; \
|
|
|
__builtin_expect(__ret_gu, 0); \
|