<p>How does __user macro works? I know it is defined in include/linux/compiler.h as:<br>
# define __user.        __attribute__((noderef, address_space(1)))<br>
I could write thesse macros defs too but my real problem is: what does this stuff do? Some functions use this macro and other does not. For example compat_do_execve (from include/linux/comtap.h) use normal pointer named filename and second pointer named argv as __user pointer. Why does argv needs __user but filename not?</p>

<p>Gregory<br>
</p>