On Wed, 2016-04-20 at 16:18 -0300, Gustavo Padovan wrote: > From: Gustavo Padovan <gustavo.pado...@collabora.co.uk> > > This function had copies in 3 different files. Unify them in kernel.h. [] > diff --git a/include/linux/kernel.h b/include/linux/kernel.h [] > @@ -53,6 +53,12 @@ > > #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + > __must_be_array(arr)) > > +static inline void __user *u64_to_user_ptr(u64 address) > +{ > + typecheck(u64, address); > + return (void __user *)(uintptr_t)address; > +} > +
This won't work because by the time address is checked address is already u64 This would need to be something like #define u64_to_user_ptr(x) \ ({ \ typecheck(u64, x); \ u64_to_user_ptr(x); \ })