|
@@ -32,7 +32,7 @@ do { \
|
|
" jmp 2b\n" \
|
|
" jmp 2b\n" \
|
|
".previous\n" \
|
|
".previous\n" \
|
|
_ASM_EXTABLE(0b,3b) \
|
|
_ASM_EXTABLE(0b,3b) \
|
|
- : "=r"(res), "=c"(count), "=&a" (__d0), "=&S" (__d1), \
|
|
|
|
|
|
+ : "=&r"(res), "=&c"(count), "=&a" (__d0), "=&S" (__d1), \
|
|
"=&D" (__d2) \
|
|
"=&D" (__d2) \
|
|
: "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \
|
|
: "i"(-EFAULT), "0"(count), "1"(count), "3"(src), "4"(dst) \
|
|
: "memory"); \
|
|
: "memory"); \
|
|
@@ -86,7 +86,7 @@ unsigned long __clear_user(void __user *addr, unsigned long size)
|
|
".previous\n"
|
|
".previous\n"
|
|
_ASM_EXTABLE(0b,3b)
|
|
_ASM_EXTABLE(0b,3b)
|
|
_ASM_EXTABLE(1b,2b)
|
|
_ASM_EXTABLE(1b,2b)
|
|
- : [size8] "=c"(size), [dst] "=&D" (__d0)
|
|
|
|
|
|
+ : [size8] "=&c"(size), [dst] "=&D" (__d0)
|
|
: [size1] "r"(size & 7), "[size8]" (size / 8), "[dst]"(addr),
|
|
: [size1] "r"(size & 7), "[size8]" (size / 8), "[dst]"(addr),
|
|
[zero] "r" (0UL), [eight] "r" (8UL));
|
|
[zero] "r" (0UL), [eight] "r" (8UL));
|
|
return size;
|
|
return size;
|