@@ -193,23 +193,12 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
193
193
: : "A" (x), "r" (addr) \
194
194
: : label)
195
195
196
- #define __put_user_asm_ex_u64 (x , addr ) \
197
- asm volatile("\n" \
198
- "1: movl %%eax,0(%1)\n" \
199
- "2: movl %%edx,4(%1)\n" \
200
- "3:" \
201
- _ASM_EXTABLE_EX(1b, 2b) \
202
- _ASM_EXTABLE_EX(2b, 3b) \
203
- : : "A" (x), "r" (addr))
204
-
205
196
#define __put_user_x8 (x , ptr , __ret_pu ) \
206
197
asm volatile("call __put_user_8" : "=a" (__ret_pu) \
207
198
: "A" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")
208
199
#else
209
200
#define __put_user_goto_u64 (x , ptr , label ) \
210
201
__put_user_goto(x, ptr, "q", "", "er", label)
211
- #define __put_user_asm_ex_u64 (x , addr ) \
212
- __put_user_asm_ex(x, addr, "q", "", "er")
213
202
#define __put_user_x8 (x , ptr , __ret_pu ) __put_user_x(8, x, ptr, __ret_pu)
214
203
#endif
215
204
@@ -289,31 +278,6 @@ do { \
289
278
} \
290
279
} while (0)
291
280
292
- /*
293
- * This doesn't do __uaccess_begin/end - the exception handling
294
- * around it must do that.
295
- */
296
- #define __put_user_size_ex (x , ptr , size ) \
297
- do { \
298
- __chk_user_ptr(ptr); \
299
- switch (size) { \
300
- case 1: \
301
- __put_user_asm_ex(x, ptr, "b", "b", "iq"); \
302
- break; \
303
- case 2: \
304
- __put_user_asm_ex(x, ptr, "w", "w", "ir"); \
305
- break; \
306
- case 4: \
307
- __put_user_asm_ex(x, ptr, "l", "k", "ir"); \
308
- break; \
309
- case 8: \
310
- __put_user_asm_ex_u64((__typeof__(*ptr))(x), ptr); \
311
- break; \
312
- default: \
313
- __put_user_bad(); \
314
- } \
315
- } while (0)
316
-
317
281
#ifdef CONFIG_X86_32
318
282
#define __get_user_asm_u64 (x , ptr , retval , errret ) \
319
283
({ \
@@ -430,29 +394,6 @@ struct __large_struct { unsigned long buf[100]; };
430
394
retval = __put_user_failed(x, addr, itype, rtype, ltype, errret); \
431
395
} while (0)
432
396
433
- #define __put_user_asm_ex (x , addr , itype , rtype , ltype ) \
434
- asm volatile("1: mov"itype" %"rtype"0,%1\n" \
435
- "2:\n" \
436
- _ASM_EXTABLE_EX(1b, 2b) \
437
- : : ltype(x), "m" (__m(addr)))
438
-
439
- /*
440
- * uaccess_try and catch
441
- */
442
- #define uaccess_try do { \
443
- current->thread.uaccess_err = 0; \
444
- __uaccess_begin(); \
445
- barrier();
446
-
447
- #define uaccess_try_nospec do { \
448
- current->thread.uaccess_err = 0; \
449
- __uaccess_begin_nospec(); \
450
-
451
- #define uaccess_catch (err ) \
452
- __uaccess_end(); \
453
- (err) |= (current->thread.uaccess_err ? -EFAULT : 0); \
454
- } while (0)
455
-
456
397
/**
457
398
* __get_user - Get a simple variable from user space, with less checking.
458
399
* @x: Variable to store result.
@@ -502,12 +443,6 @@ struct __large_struct { unsigned long buf[100]; };
502
443
#define __put_user (x , ptr ) \
503
444
__put_user_nocheck((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))
504
445
505
- #define put_user_try uaccess_try
506
- #define put_user_catch (err ) uaccess_catch(err)
507
-
508
- #define put_user_ex (x , ptr ) \
509
- __put_user_size_ex((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))
510
-
511
446
extern unsigned long
512
447
copy_from_user_nmi (void * to , const void __user * from , unsigned long n );
513
448
extern __must_check long
0 commit comments