Fwd: [EXTERNAL] Re: ioctl.c:undefined reference to `__get_user_bad'
Randy Dunlap
rdunlap at infradead.org
Tue May 18 18:48:04 PDT 2021
On 5/18/21 3:03 AM, Russell King (Oracle) wrote:
> On Mon, May 17, 2021 at 02:06:33PM -0700, Randy Dunlap wrote:
>> [adding back linux-arm-kernel; what happened to it? ]
That was about what I thought was Steve F. dropping LAK on his response email.
> Nothing. I'm not interested in trying to do major disgusting
> contortions to make get_user() work for 8-byte values. If someone
> else wants to put the effort in and come up with an elegant solution
> that doesn't add warnings over the rest of the kernel, that's fine.
>
> As far as I remember, everything in __get_user_err() relies on
> __gu_val _not_ being 64-bit. If we use the same trick that we do
> in __get_user_check():
>
> __inttype(x) __gu_val = (x);
>
> then if get_user() is called with a 64-bit integer value and a
> pointer-to-32-bit location to fetch from, we'd end up passing a
> 64-bit integer into the __get_user_asm() which could access the
> wrong 32-bit half of the value in BE mode. Similar issue with
> 64-bit vs pointer-to-16-bit.
Yes, trying to handle get_user() of size 8 bytes is quite messy.
I have a few versions and they are all ugly and cause build warnings.
So we are down to what bugzilla calls WONTFIX. I'm OK with that.
Thanks.
--
~Randy
More information about the linux-arm-kernel
mailing list