diff options
author | Michal Simek <monstr@monstr.eu> | 2010-03-08 09:38:02 +0100 |
---|---|---|
committer | Michal Simek <monstr@monstr.eu> | 2010-04-01 08:38:21 +0200 |
commit | 40e11e3380d4bd14bb3d85c7e7b863075a6a8d86 (patch) | |
tree | 00d33e5bb3071a4f93e913d6c527da95888f18a6 /arch/microblaze | |
parent | 4270690bd4b1420a8d634ea31953a1c4def2a44a (diff) | |
download | linux-3.10-40e11e3380d4bd14bb3d85c7e7b863075a6a8d86.tar.gz linux-3.10-40e11e3380d4bd14bb3d85c7e7b863075a6a8d86.tar.bz2 linux-3.10-40e11e3380d4bd14bb3d85c7e7b863075a6a8d86.zip |
microblaze: uaccess: Fix strncpy_from_user function
Generic implementation for noMMU and MMU version
Signed-off-by: Michal Simek <monstr@monstr.eu>
Diffstat (limited to 'arch/microblaze')
-rw-r--r-- | arch/microblaze/include/asm/uaccess.h | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/arch/microblaze/include/asm/uaccess.h b/arch/microblaze/include/asm/uaccess.h index b56d8ae9b17..fe954b394fd 100644 --- a/arch/microblaze/include/asm/uaccess.h +++ b/arch/microblaze/include/asm/uaccess.h @@ -407,11 +407,19 @@ static inline long copy_to_user(void __user *to, } extern int __strncpy_user(char *to, const char __user *from, int len); + +#define __strncpy_from_user __strncpy_user + +static inline long +strncpy_from_user(char *dst, const char __user *src, long count) +{ + if (!access_ok(VERIFY_READ, src, 1)) + return -EFAULT; + return __strncpy_from_user(dst, src, count); +} + extern int __strnlen_user(const char __user *sstr, int len); -#define strncpy_from_user(to, from, len) \ - (access_ok(VERIFY_READ, from, 1) ? \ - __strncpy_user(to, from, len) : -EFAULT) #define strnlen_user(str, len) \ (access_ok(VERIFY_READ, str, 1) ? __strnlen_user(str, len) : 0) |