On Thu, Mar 17, 2016 at 02:33:50PM -0700, Joe Perches wrote:
On Thu, 2016-03-17 at 18:19 -0300, Gustavo Padovan wrote:
2016-03-17 Joe Perches joe@perches.com:
On Thu, 2016-03-17 at 16:50 -0400, Rob Clark wrote:
On Thu, Mar 17, 2016 at 4:40 PM, Joe Perches joe@perches.com wrote:
[]
It's a name that seems like it should be a straightforward cast of a kernel pointer to a __user pointer like:
static inline void __user *to_user_ptr(void *p) { return (void __user *)p; }
ahh, ok. I guess I was used to using it in the context of ioctl structs.. in that context u64 -> (void __user *) made more sense.
Maybe uapi_to_ptr()? (ok, not super-creative.. maybe someone has a better idea)
Maybe u64_to_user_ptr?
That is a good name. If everyone agrees I can resend this patch changing it to u64_to_user_ptr. Then should we still keep it on kernel.h?
I've no particular opinion about location, but maybe compat.h might be appropriate.
Maybe add all variants:
void __user *u32_to_user_ptr(u32 val) void __user *u64_to_user_ptr(u64 val) u32 user_ptr_to_u32(void __user *p) u64 user_ptr_to_u64(void __user *p)
Maybe there's something about 32 bit userspace on 64 OS that should be done too.
Tbh I really don't think we should add 32bit variants and encourage the mispractice of having 32bit user ptrs in ioctl structs and stuff. Anyway, just my bikeshed on top ;-) -Daniel