aboutsummaryrefslogtreecommitdiffstats
path: root/arch/openrisc/include
diff options
context:
space:
mode:
authorJonas Bonn <jonas@southpole.se>2012-05-27 04:25:47 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-05-28 00:00:32 -0400
commitb48b2c3e50433ff6f7e46186daa7f986bd960215 (patch)
tree9a10b2130582f99df5ae7eae0b959425e791118c /arch/openrisc/include
parent1629372caaaf7ef744d3b983be56b99468a68ff8 (diff)
openrisc: use generic strnlen_user() function
The generic version is both easier to support and more correct. Signed-off-by: Jonas Bonn <jonas@southpole.se> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/openrisc/include')
-rw-r--r--arch/openrisc/include/asm/uaccess.h30
1 files changed, 2 insertions, 28 deletions
diff --git a/arch/openrisc/include/asm/uaccess.h b/arch/openrisc/include/asm/uaccess.h
index 04b93de92636..ab2e7a198a4c 100644
--- a/arch/openrisc/include/asm/uaccess.h
+++ b/arch/openrisc/include/asm/uaccess.h
@@ -318,33 +318,7 @@ clear_user(void *addr, unsigned long size)
318 318
319extern long strncpy_from_user(char *dest, const char __user *src, long count); 319extern long strncpy_from_user(char *dest, const char __user *src, long count);
320 320
321/* 321extern __must_check long strlen_user(const char __user *str);
322 * Return the size of a string (including the ending 0) 322extern __must_check long strnlen_user(const char __user *str, long n);
323 *
324 * Return 0 for error
325 */
326
327extern int __strnlen_user(const char *str, long len, unsigned long top);
328
329/*
330 * Returns the length of the string at str (including the null byte),
331 * or 0 if we hit a page we can't access,
332 * or something > len if we didn't find a null byte.
333 *
334 * The `top' parameter to __strnlen_user is to make sure that
335 * we can never overflow from the user area into kernel space.
336 */
337static inline long strnlen_user(const char __user *str, long len)
338{
339 unsigned long top = (unsigned long)get_fs();
340 unsigned long res = 0;
341
342 if (__addr_ok(str))
343 res = __strnlen_user(str, len, top);
344
345 return res;
346}
347
348#define strlen_user(str) strnlen_user(str, TASK_SIZE-1)
349 323
350#endif /* __ASM_OPENRISC_UACCESS_H */ 324#endif /* __ASM_OPENRISC_UACCESS_H */