Re: [PATCH v12 1/2] kernel.h: add u64_to_user_ptr()

From: Tomas Winkler
Date: Mon Jul 11 2016 - 03:52:16 EST


> > > Though I normally prefer static inline functions, I see the benefits of
> > > using the macro form here.
>
> An inline could still work
> static inline void __user *u64_to_user_ptr(u64 address)
> {
> return (void __user *)(uintptr_t)address;
> }
> if the macro was
> #define u64_to_user_ptr(x) \
> ({ \
> typecheck(u64, x); \
> (u64_to_user_ptr)(x); \
> })
>
> the parenthesis around the u64_to_user_ptr
> in the macro should prevent expansion.
>

sparse is throwing 'warning: dereference of noderef expression' on
this macro now.
Any clues what need to be fixed
Thanks
Tomas