summaryrefslogtreecommitdiffstats
path: root/arch/arm64/include/asm/uaccess.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-10-04 09:04:26 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2013-10-04 09:04:26 -0700
commit0d45dab6c14346171b99aea34011c34f91f921fd (patch)
treeac483e483b4af4c0f92383098d0399fff72b2a36 /arch/arm64/include/asm/uaccess.h
parent0bfdbf0e79ab20394c932f27f6d3a34b757035ef (diff)
parent09d3ce74d7d60f37d1b030886ec659bbfe2e73bf (diff)
downloadlinux-0d45dab6c14346171b99aea34011c34f91f921fd.tar.bz2
Merge tag 'arm64-stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64
Pull ARM64 fixes/updates from Catalin Marinas: - Bug-fixes (get_user/put_user, incorrect register width for ASID, FPSIMD initialisation) - Kconfig clean-up - defconfig update * tag 'arm64-stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64: arm64: Remove duplicate DEBUG_STACK_USAGE config arm64: include VIRTIO_{MMIO,BLK} in defconfig arm64: include EXT4 in defconfig arm64: fix possible invalid FPSIMD initialization state arm64: use correct register width when retrieving ASID arm64: avoid multiple evaluation of ptr in get_user/put_user()
Diffstat (limited to 'arch/arm64/include/asm/uaccess.h')
-rw-r--r--arch/arm64/include/asm/uaccess.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/arch/arm64/include/asm/uaccess.h b/arch/arm64/include/asm/uaccess.h
index edb3d5c73a32..7ecc2b23882e 100644
--- a/arch/arm64/include/asm/uaccess.h
+++ b/arch/arm64/include/asm/uaccess.h
@@ -166,9 +166,10 @@ do { \
#define get_user(x, ptr) \
({ \
+ __typeof__(*(ptr)) __user *__p = (ptr); \
might_fault(); \
- access_ok(VERIFY_READ, (ptr), sizeof(*(ptr))) ? \
- __get_user((x), (ptr)) : \
+ access_ok(VERIFY_READ, __p, sizeof(*__p)) ? \
+ __get_user((x), __p) : \
((x) = 0, -EFAULT); \
})
@@ -227,9 +228,10 @@ do { \
#define put_user(x, ptr) \
({ \
+ __typeof__(*(ptr)) __user *__p = (ptr); \
might_fault(); \
- access_ok(VERIFY_WRITE, (ptr), sizeof(*(ptr))) ? \
- __put_user((x), (ptr)) : \
+ access_ok(VERIFY_WRITE, __p, sizeof(*__p)) ? \
+ __put_user((x), __p) : \
-EFAULT; \
})