(((segment).seg & (addr | size )) == 0)
#define access_ok(type,addr,size) \
- __access_ok(((unsigned long)(addr)),(size),get_fs())
+ __access_ok(((__force unsigned long)(addr)),(size),get_fs())
static inline int verify_area(int type, const void __user *addr, unsigned long size)
{
#define __put_user_nocheck(x,ptr,size) \
({ \
long __pu_err; \
+ __chk_user_ptr(ptr); \
__put_user_size((x),(ptr),(size),__pu_err,-EFAULT); \
__pu_err; \
})
#define __put_user_check(x,ptr,size) \
({ \
long __pu_err = -EFAULT; \
- __typeof__(*(ptr)) *__pu_addr = (ptr); \
+ void __user *__pu_addr = (ptr); \
if (access_ok(VERIFY_WRITE,__pu_addr,size)) \
__put_user_size((x),__pu_addr,(size),__pu_err,-EFAULT); \
__pu_err; \
do { \
might_sleep(); \
retval = 0; \
+ __chk_user_ptr(ptr); \
switch (size) { \
case 1: __get_user_asm(x,ptr,retval,"lbz",errret); break; \
case 2: __get_user_asm(x,ptr,retval,"lhz",errret); break; \