summaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/uaccess.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-05-26 19:14:39 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2012-05-26 19:14:39 +0200
commit4ae73f2d53255c388d50bf83c1681112a6f9cba1 (patch)
tree0b0d9adce97c2270a427e1f1c19c977b8f066d5b /arch/x86/include/asm/uaccess.h
parentMerge tag 'tag-for-linus-3.5' of git://git.linaro.org/people/sumitsemwal/linu... (diff)
downloadlinux-4ae73f2d53255c388d50bf83c1681112a6f9cba1.tar.xz
linux-4ae73f2d53255c388d50bf83c1681112a6f9cba1.zip
x86: use generic strncpy_from_user routine
The generic strncpy_from_user() is not really optimal, since it is designed to work on both little-endian and big-endian. And on little-endian you can simplify much of the logic to find the first zero byte, since little-endian arithmetic doesn't have to worry about the carry bit propagating into earlier bytes (only later bytes, which we don't care about). But I have patches to make the generic routines use the architecture- specific <asm/word-at-a-time.h> infrastructure, so that we can regain the little-endian optimizations. But before we do that, switch over to the generic routines to make the patches each do just one well-defined thing. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/x86/include/asm/uaccess.h')
-rw-r--r--arch/x86/include/asm/uaccess.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
index 851fe0dc13bc..1354facd8f63 100644
--- a/arch/x86/include/asm/uaccess.h
+++ b/arch/x86/include/asm/uaccess.h
@@ -32,6 +32,7 @@
#define segment_eq(a, b) ((a).seg == (b).seg)
+#define user_addr_max() (current_thread_info()->addr_limit.seg)
#define __addr_ok(addr) \
((unsigned long __force)(addr) < \
(current_thread_info()->addr_limit.seg))