diff options
| author | Anton Blanchard <anton@samba.org> | 2004-07-10 19:29:02 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-07-10 19:29:02 -0700 |
| commit | 69867f861ed13ce7967516e031452608164884e8 (patch) | |
| tree | f103647730bacbe052cc66377f68f7f850ac9feb /include | |
| parent | 3b78f5c578f2d650b74120ed5174dbeb5a09ee2f (diff) | |
[PATCH] ppc64: uninline some user copy routines
gcc 3.5 is complaining about the size of copy_from_user. It turns out it
is rather large and putting it out of line saves us about 30kB on a default
kernel build.
Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-ppc64/uaccess.h | 33 |
1 files changed, 6 insertions, 27 deletions
diff --git a/include/asm-ppc64/uaccess.h b/include/asm-ppc64/uaccess.h index 9423be5add95..4d2d6097802b 100644 --- a/include/asm-ppc64/uaccess.h +++ b/include/asm-ppc64/uaccess.h @@ -272,33 +272,12 @@ __copy_to_user(void __user *to, const void *from, unsigned long n) #define __copy_in_user(to, from, size) \ __copy_tofrom_user((to), (from), (size)) -static inline unsigned long -copy_from_user(void *to, const void __user *from, unsigned long n) -{ - if (likely(access_ok(VERIFY_READ, from, n))) - n = __copy_from_user(to, from, n); - else - memset(to, 0, n); - return n; -} - -static inline unsigned long -copy_to_user(void __user *to, const void *from, unsigned long n) -{ - if (likely(access_ok(VERIFY_WRITE, to, n))) - n = __copy_to_user(to, from, n); - return n; -} - -static inline unsigned long -copy_in_user(void __user *to, const void __user *from, unsigned long n) -{ - might_sleep(); - if (likely(access_ok(VERIFY_READ, from, n) && - access_ok(VERIFY_WRITE, to, n))) - n =__copy_tofrom_user(to, from, n); - return n; -} +extern unsigned long copy_from_user(void *to, const void __user *from, + unsigned long n); +extern unsigned long copy_to_user(void __user *to, const void *from, + unsigned long n); +extern unsigned long copy_in_user(void __user *to, const void __user *from, + unsigned long n); extern unsigned long __clear_user(void __user *addr, unsigned long size); |
