x86: uaccess_64: fix return value in __copy_from_user()
authorHiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
Fri, 14 Nov 2008 02:06:04 +0000 (18:06 -0800)
committerIngo Molnar <mingo@elte.hu>
Tue, 18 Nov 2008 21:28:58 +0000 (22:28 +0100)
__copy_from_user() will return invalid value 16 when it fails to
access user space and the size is 10.

Signed-off-by: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/include/asm/uaccess_64.h

index 664f15280f14354dc057e1d97954db6baab4b959..f8cfd00db450f2e0f948ce7128a2d44867aebf59 100644 (file)
@@ -46,7 +46,7 @@ int __copy_from_user(void *dst, const void __user *src, unsigned size)
                return ret;
        case 10:
                __get_user_asm(*(u64 *)dst, (u64 __user *)src,
-                              ret, "q", "", "=r", 16);
+                              ret, "q", "", "=r", 10);
                if (unlikely(ret))
                        return ret;
                __get_user_asm(*(u16 *)(8 + (char *)dst),