diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-26 19:14:39 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-26 19:14:39 +0200 |
commit | 4ae73f2d53255c388d50bf83c1681112a6f9cba1 (patch) | |
tree | 0b0d9adce97c2270a427e1f1c19c977b8f066d5b /arch/x86/include/asm/uaccess.h | |
parent | Merge tag 'tag-for-linus-3.5' of git://git.linaro.org/people/sumitsemwal/linu... (diff) | |
download | linux-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.h | 1 |
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)) |