#define put_user(x, ptr) \ ({ \ __typeof__(*(ptr)) __user *__p = (ptr); \ might_fault(); \
access_ok(VERIFY_WRITE, __p, sizeof(*__p)) ? \ __put_user((x), __p) : \ -EFAULT; \
})