OSDN Git Service

x86: kill get_user_{try,catch,ex}
authorAl Viro <viro@zeniv.linux.org.uk>
Sat, 15 Feb 2020 18:26:51 +0000 (13:26 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Thu, 19 Mar 2020 00:35:35 +0000 (20:35 -0400)
no users left

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
arch/x86/include/asm/uaccess.h

index 1cfa33b..4dc5acc 100644 (file)
@@ -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)                  \
@@ -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;                                   \
@@ -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)