[RFCv1 12/12] ARM: add get_user() support for 8 byte types

Rob Clark robdclark at gmail.com
Sun Oct 6 16:09:34 CEST 2013


On Sun, Oct 6, 2013 at 4:53 AM, Russell King - ARM Linux
<linux at arm.linux.org.uk> wrote:
> On Sat, Oct 05, 2013 at 08:45:50PM -0400, Rob Clark wrote:
>> A new atomic modeset/pageflip ioctl being developed in DRM requires
>> get_user() to work for 64bit types (in addition to just put_user()).
>>
>> v1: original
>> v2: pass correct size to check_uaccess, and better handling of narrowing
>>     double word read with __get_user_xb() (Russell King's suggestion)
>
> I thought we had decided not to support this for 32-bit because x86_32
> had problems here as well:

I don't remember.. actually I didn't even realize it wasn't merged
until I tried to build with the atomic modeset ioctl.

Ville did have a patch to add it for x86_32, and that patch appears to
be merged (96477b4c), so I just assume it wasn't removed since then.

BR,
-R

> #ifdef CONFIG_X86_32
> #define __get_user_asm_u64(x, ptr, retval, errret)      (x) = __get_user_bad()
> #define __get_user_asm_ex_u64(x, ptr)                   (x) = __get_user_bad()
> #else
> #define __get_user_asm_u64(x, ptr, retval, errret) \
>          __get_user_asm(x, ptr, retval, "q", "", "=r", errret)
> #define __get_user_asm_ex_u64(x, ptr) \
>          __get_user_asm_ex(x, ptr, "q", "", "=r")
> #endif
>


More information about the dri-devel mailing list