Re: [PATCH v9 2/3] kernel.h: add to_user_ptr()
From: Gustavo Padovan <hidden>
Date: 2016-03-17 22:16:39
Also in:
dri-devel, lkml
2016-03-17 Joe Perches [off-list ref]:
On Thu, 2016-03-17 at 18:19 -0300, Gustavo Padovan wrote:quoted
2016-03-17 Joe Perches [off-list ref]:quoted
On Thu, 2016-03-17 at 16:50 -0400, Rob Clark wrote:quoted
On Thu, Mar 17, 2016 at 4:40 PM, Joe Perches [off-list ref] wrot=
e:
quoted
quoted
[]quoted
quoted
It's a name that seems like it should be a straightforward cast of a kernel pointer to a __user pointer like: =20 static inline void __user *to_user_ptr(void *p) { =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0return (void __us=
er *)p;
quoted
quoted
quoted
quoted
}ahh, ok.=C2=A0=C2=A0I guess I was used to using it in the context o=
f ioctl
quoted
quoted
quoted
structs..=C2=A0=C2=A0in that context u64 -> (void __user *) made mo=
re sense.
quoted
quoted
quoted
=20 Maybe uapi_to_ptr()?=C2=A0=C2=A0(ok, not super-creative.. maybe som=
eone has a
quoted
quoted
quoted
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?=20 I've no particular opinion about location, but maybe compat.h might be appropriate.
I don't think this is really related to compat. I'd keep kernel.h. The problem I'm trying to solve here is: CC drivers/dma-buf/sync_file.o drivers/dma-buf/sync_file.c: In function =E2=80=98sync_file_ioctl_fence_inf= o=E2=80=99: drivers/dma-buf/sync_file.c:341:19: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] if (copy_to_user((void __user *)info.sync_fence_info, fence_info, where info.sync_fence_info is __u64. Gustavo