Skip to content

Commit

Permalink
x86: turn __put_user_check directly into put_user.
Browse files Browse the repository at this point in the history
We also check user pointer in x86_64 put_user, the way i386 does.

In a separate patch for bisecting purposes.

Signed-off-by: Glauber Costa <gcosta@redhat.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Glauber Costa authored and Ingo Molnar committed Jul 9, 2008
1 parent 64a978c commit ec84095
Showing 1 changed file with 3 additions and 5 deletions.
8 changes: 3 additions & 5 deletions include/asm-x86/uaccess_64.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,6 @@ extern void __put_user_bad(void);
:"c" (ptr),"a" (x) \
:"ebx")

#define put_user(x, ptr) \
__put_user_check((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))

#define __get_user(x, ptr) \
__get_user_nocheck((x), (ptr), sizeof(*(ptr)))
#define __put_user(x, ptr) \
Expand All @@ -34,11 +31,12 @@ extern void __put_user_bad(void);
#define __get_user_unaligned __get_user
#define __put_user_unaligned __put_user

#define __put_user_check(x, ptr, size) \
#define put_user(x, ptr) \
({ \
int __pu_err; \
typeof(*(ptr)) __user *__pu_addr = (ptr); \
switch (size) { \
__chk_user_ptr(ptr); \
switch (sizeof(*(ptr))) { \
case 1: \
__put_user_x(1, __pu_err, x, __pu_addr); \
break; \
Expand Down

0 comments on commit ec84095

Please sign in to comment.