Loading arch/x86/include/asm/uaccess.h +0 −54 Original line number Diff line number Diff line Loading @@ -335,12 +335,9 @@ do { \ "i" (errret), "0" (retval)); \ }) #define __get_user_asm_ex_u64(x, ptr) (x) = __get_user_bad() #else #define __get_user_asm_u64(x, ptr, retval, errret) \ __get_user_asm(x, ptr, retval, "q", "", "=r", errret) #define __get_user_asm_ex_u64(x, ptr) \ __get_user_asm_ex(x, ptr, "q", "", "=r") #endif #define __get_user_size(x, ptr, size, retval, errret) \ Loading Loading @@ -378,41 +375,6 @@ do { \ : "=r" (err), ltype(x) \ : "m" (__m(addr)), "i" (errret), "0" (err)) /* * This doesn't do __uaccess_begin/end - the exception handling * around it must do that. */ #define __get_user_size_ex(x, ptr, size) \ do { \ __chk_user_ptr(ptr); \ switch (size) { \ case 1: \ __get_user_asm_ex(x, ptr, "b", "b", "=q"); \ break; \ case 2: \ __get_user_asm_ex(x, ptr, "w", "w", "=r"); \ break; \ case 4: \ __get_user_asm_ex(x, ptr, "l", "k", "=r"); \ break; \ case 8: \ __get_user_asm_ex_u64(x, ptr); \ break; \ default: \ (x) = __get_user_bad(); \ } \ } while (0) #define __get_user_asm_ex(x, addr, itype, rtype, ltype) \ asm volatile("1: mov"itype" %1,%"rtype"0\n" \ "2:\n" \ ".section .fixup,\"ax\"\n" \ "3:xor"itype" %"rtype"0,%"rtype"0\n" \ " jmp 2b\n" \ ".previous\n" \ _ASM_EXTABLE_EX(1b, 3b) \ : ltype(x) : "m" (__m(addr))) #define __put_user_nocheck(x, ptr, size) \ ({ \ __label__ __pu_label; \ Loading Loading @@ -540,22 +502,6 @@ struct __large_struct { unsigned long buf[100]; }; #define __put_user(x, ptr) \ __put_user_nocheck((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr))) /* * {get|put}_user_try and catch * * get_user_try { * get_user_ex(...); * } get_user_catch(err) */ #define get_user_try uaccess_try_nospec #define get_user_catch(err) uaccess_catch(err) #define get_user_ex(x, ptr) do { \ unsigned long __gue_val; \ __get_user_size_ex((__gue_val), (ptr), (sizeof(*(ptr)))); \ (x) = (__force __typeof__(*(ptr)))__gue_val; \ } while (0) #define put_user_try uaccess_try #define put_user_catch(err) uaccess_catch(err) Loading Loading
arch/x86/include/asm/uaccess.h +0 −54 Original line number Diff line number Diff line Loading @@ -335,12 +335,9 @@ do { \ "i" (errret), "0" (retval)); \ }) #define __get_user_asm_ex_u64(x, ptr) (x) = __get_user_bad() #else #define __get_user_asm_u64(x, ptr, retval, errret) \ __get_user_asm(x, ptr, retval, "q", "", "=r", errret) #define __get_user_asm_ex_u64(x, ptr) \ __get_user_asm_ex(x, ptr, "q", "", "=r") #endif #define __get_user_size(x, ptr, size, retval, errret) \ Loading Loading @@ -378,41 +375,6 @@ do { \ : "=r" (err), ltype(x) \ : "m" (__m(addr)), "i" (errret), "0" (err)) /* * This doesn't do __uaccess_begin/end - the exception handling * around it must do that. */ #define __get_user_size_ex(x, ptr, size) \ do { \ __chk_user_ptr(ptr); \ switch (size) { \ case 1: \ __get_user_asm_ex(x, ptr, "b", "b", "=q"); \ break; \ case 2: \ __get_user_asm_ex(x, ptr, "w", "w", "=r"); \ break; \ case 4: \ __get_user_asm_ex(x, ptr, "l", "k", "=r"); \ break; \ case 8: \ __get_user_asm_ex_u64(x, ptr); \ break; \ default: \ (x) = __get_user_bad(); \ } \ } while (0) #define __get_user_asm_ex(x, addr, itype, rtype, ltype) \ asm volatile("1: mov"itype" %1,%"rtype"0\n" \ "2:\n" \ ".section .fixup,\"ax\"\n" \ "3:xor"itype" %"rtype"0,%"rtype"0\n" \ " jmp 2b\n" \ ".previous\n" \ _ASM_EXTABLE_EX(1b, 3b) \ : ltype(x) : "m" (__m(addr))) #define __put_user_nocheck(x, ptr, size) \ ({ \ __label__ __pu_label; \ Loading Loading @@ -540,22 +502,6 @@ struct __large_struct { unsigned long buf[100]; }; #define __put_user(x, ptr) \ __put_user_nocheck((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr))) /* * {get|put}_user_try and catch * * get_user_try { * get_user_ex(...); * } get_user_catch(err) */ #define get_user_try uaccess_try_nospec #define get_user_catch(err) uaccess_catch(err) #define get_user_ex(x, ptr) do { \ unsigned long __gue_val; \ __get_user_size_ex((__gue_val), (ptr), (sizeof(*(ptr)))); \ (x) = (__force __typeof__(*(ptr)))__gue_val; \ } while (0) #define put_user_try uaccess_try #define put_user_catch(err) uaccess_catch(err) Loading