|
@@ -91,22 +91,19 @@ extern int __put_user_bad(void);
|
|
#define get_user(x, ptr) \
|
|
#define get_user(x, ptr) \
|
|
({ \
|
|
({ \
|
|
int __gu_err = 0; \
|
|
int __gu_err = 0; \
|
|
- uint32_t __gu_val = 0; \
|
|
|
|
|
|
+ typeof(*(ptr)) __gu_val = *ptr; \
|
|
switch (sizeof(*(ptr))) { \
|
|
switch (sizeof(*(ptr))) { \
|
|
case 1: \
|
|
case 1: \
|
|
case 2: \
|
|
case 2: \
|
|
case 4: \
|
|
case 4: \
|
|
- __gu_val = *(ptr); \
|
|
|
|
- break; \
|
|
|
|
- case 8: \
|
|
|
|
- memcpy(&__gu_val, ptr, sizeof (*(ptr))); \
|
|
|
|
|
|
+ case 8: \
|
|
break; \
|
|
break; \
|
|
default: \
|
|
default: \
|
|
- __gu_val = 0; \
|
|
|
|
__gu_err = __get_user_bad(); \
|
|
__gu_err = __get_user_bad(); \
|
|
|
|
+ __gu_val = 0; \
|
|
break; \
|
|
break; \
|
|
} \
|
|
} \
|
|
- (x) = (typeof(*(ptr)))__gu_val; \
|
|
|
|
|
|
+ (x) = __gu_val; \
|
|
__gu_err; \
|
|
__gu_err; \
|
|
})
|
|
})
|
|
#define __get_user(x, ptr) get_user(x, ptr)
|
|
#define __get_user(x, ptr) get_user(x, ptr)
|