Files
android_kernel_xiaomi_sm8450/arch/arm/include/asm
Daniel Thompson e38361d032 ARM: 8091/2: add get_user() support for 8 byte types
Recent contributions, including to DRM and binder, introduce 64-bit
values in their interfaces. A common motivation for this is to allow
the same ABI for 32- and 64-bit userspaces (and therefore also a shared
ABI for 32/64 hybrid userspaces). Anyhow, the developers would like to
avoid gotchas like having to use copy_from_user().

This feature is already implemented on x86-32 and the majority of other
32-bit architectures. The current list of get_user_8 hold out
architectures are: arm, avr32, blackfin, m32r, metag, microblaze,
mn10300, sh.

Credit:

    My name sits rather uneasily at the top of this patch. The v1 and
    v2 versions of the patch were written by Rob Clark and to produce v4
    I mostly copied code from Russell King and H. Peter Anvin. However I
    have mangled the patch sufficiently that *blame* is rightfully mine
    even if credit should more widely shared.

Changelog:

v5: updated to use the ret macro (requested by Russell King)
v4: remove an inlined add on big endian systems (spotted by Russell King),
    used __ARMEB__ rather than BIG_ENDIAN (to match rest of file),
    cleared r3 on EFAULT during __get_user_8.
v3: fix a couple of checkpatch issues
v2: pass correct size to check_uaccess, and better handling of narrowing
    double word read with __get_user_xb() (Russell King's suggestion)
v1: original

Signed-off-by: Rob Clark <robdclark@gmail.com>
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2014-07-18 12:29:34 +01:00
..
2014-04-18 11:40:32 +02:00
2014-04-18 11:40:32 +02:00
2014-04-18 11:40:32 +02:00
2012-03-28 18:30:01 +01:00
2014-06-02 09:20:18 +01:00
2012-07-05 09:50:55 +01:00
2012-09-14 09:21:59 -05:00
2012-09-14 13:53:39 +00:00
2013-04-17 21:38:10 +02:00
2014-02-25 11:33:37 +00:00
2012-07-24 15:27:28 +08:00
2013-01-23 13:29:17 -05:00
2014-06-01 01:17:12 +01:00
2013-07-08 22:08:51 +01:00
2013-11-15 09:32:16 +09:00
2014-05-27 15:58:49 +02:00
2014-06-01 01:17:12 +01:00
2014-02-25 11:33:37 +00:00
2014-03-18 16:39:40 -04:00