diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-29 20:25:48 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-29 20:25:48 -0500 |
commit | 9ca0e5474d11ca044e0aacfa6e78bf17957118d2 (patch) | |
tree | 2ffa4b51a73070e41b53644e0adfd39adf1eb501 /include | |
parent | c0f79c4cb11acca545f9802ee0e14ad3b5cc123d (diff) | |
parent | 9f0f9313cec8c76c89bc8a68653f928fa12fab96 (diff) |
Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm:
[ARM] 3914/1: [Jornada7xx] - Typo Fix in cpu-sa1110.c (b != B)
[ARM] 3913/1: n2100: fix IRQ routing for second ethernet port
[ARM] Add KBUILD_IMAGE target support
[ARM] Fix suspend oops caused by PXA2xx PCMCIA driver
[ARM] Fix i2c-pxa slave mode support
[ARM] 3900/1: Fix VFP Division by Zero exception handling.
[ARM] 3899/1: Fix the normalization of the denormal double precision number.
[ARM] 3909/1: Disable UWIND_INFO for ARM (again)
[ARM] Add __must_check to uaccess functions
[ARM] Add realview SMP default configuration
[ARM] Fix SMP irqflags support
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-arm/uaccess.h | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/include/asm-arm/uaccess.h b/include/asm-arm/uaccess.h index 09ad0cab9014..5f420a0149f1 100644 --- a/include/asm-arm/uaccess.h +++ b/include/asm-arm/uaccess.h | |||
@@ -383,19 +383,19 @@ do { \ | |||
383 | 383 | ||
384 | 384 | ||
385 | #ifdef CONFIG_MMU | 385 | #ifdef CONFIG_MMU |
386 | extern unsigned long __copy_from_user(void *to, const void __user *from, unsigned long n); | 386 | extern unsigned long __must_check __copy_from_user(void *to, const void __user *from, unsigned long n); |
387 | extern unsigned long __copy_to_user(void __user *to, const void *from, unsigned long n); | 387 | extern unsigned long __must_check __copy_to_user(void __user *to, const void *from, unsigned long n); |
388 | extern unsigned long __clear_user(void __user *addr, unsigned long n); | 388 | extern unsigned long __must_check __clear_user(void __user *addr, unsigned long n); |
389 | #else | 389 | #else |
390 | #define __copy_from_user(to,from,n) (memcpy(to, (void __force *)from, n), 0) | 390 | #define __copy_from_user(to,from,n) (memcpy(to, (void __force *)from, n), 0) |
391 | #define __copy_to_user(to,from,n) (memcpy((void __force *)to, from, n), 0) | 391 | #define __copy_to_user(to,from,n) (memcpy((void __force *)to, from, n), 0) |
392 | #define __clear_user(addr,n) (memset((void __force *)addr, 0, n), 0) | 392 | #define __clear_user(addr,n) (memset((void __force *)addr, 0, n), 0) |
393 | #endif | 393 | #endif |
394 | 394 | ||
395 | extern unsigned long __strncpy_from_user(char *to, const char __user *from, unsigned long count); | 395 | extern unsigned long __must_check __strncpy_from_user(char *to, const char __user *from, unsigned long count); |
396 | extern unsigned long __strnlen_user(const char __user *s, long n); | 396 | extern unsigned long __must_check __strnlen_user(const char __user *s, long n); |
397 | 397 | ||
398 | static inline unsigned long copy_from_user(void *to, const void __user *from, unsigned long n) | 398 | static inline unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long n) |
399 | { | 399 | { |
400 | if (access_ok(VERIFY_READ, from, n)) | 400 | if (access_ok(VERIFY_READ, from, n)) |
401 | n = __copy_from_user(to, from, n); | 401 | n = __copy_from_user(to, from, n); |
@@ -404,7 +404,7 @@ static inline unsigned long copy_from_user(void *to, const void __user *from, un | |||
404 | return n; | 404 | return n; |
405 | } | 405 | } |
406 | 406 | ||
407 | static inline unsigned long copy_to_user(void __user *to, const void *from, unsigned long n) | 407 | static inline unsigned long __must_check copy_to_user(void __user *to, const void *from, unsigned long n) |
408 | { | 408 | { |
409 | if (access_ok(VERIFY_WRITE, to, n)) | 409 | if (access_ok(VERIFY_WRITE, to, n)) |
410 | n = __copy_to_user(to, from, n); | 410 | n = __copy_to_user(to, from, n); |
@@ -414,14 +414,14 @@ static inline unsigned long copy_to_user(void __user *to, const void *from, unsi | |||
414 | #define __copy_to_user_inatomic __copy_to_user | 414 | #define __copy_to_user_inatomic __copy_to_user |
415 | #define __copy_from_user_inatomic __copy_from_user | 415 | #define __copy_from_user_inatomic __copy_from_user |
416 | 416 | ||
417 | static inline unsigned long clear_user(void __user *to, unsigned long n) | 417 | static inline unsigned long __must_check clear_user(void __user *to, unsigned long n) |
418 | { | 418 | { |
419 | if (access_ok(VERIFY_WRITE, to, n)) | 419 | if (access_ok(VERIFY_WRITE, to, n)) |
420 | n = __clear_user(to, n); | 420 | n = __clear_user(to, n); |
421 | return n; | 421 | return n; |
422 | } | 422 | } |
423 | 423 | ||
424 | static inline long strncpy_from_user(char *dst, const char __user *src, long count) | 424 | static inline long __must_check strncpy_from_user(char *dst, const char __user *src, long count) |
425 | { | 425 | { |
426 | long res = -EFAULT; | 426 | long res = -EFAULT; |
427 | if (access_ok(VERIFY_READ, src, 1)) | 427 | if (access_ok(VERIFY_READ, src, 1)) |
@@ -431,7 +431,7 @@ static inline long strncpy_from_user(char *dst, const char __user *src, long cou | |||
431 | 431 | ||
432 | #define strlen_user(s) strnlen_user(s, ~0UL >> 1) | 432 | #define strlen_user(s) strnlen_user(s, ~0UL >> 1) |
433 | 433 | ||
434 | static inline long strnlen_user(const char __user *s, long n) | 434 | static inline long __must_check strnlen_user(const char __user *s, long n) |
435 | { | 435 | { |
436 | unsigned long res = 0; | 436 | unsigned long res = 0; |
437 | 437 | ||